Server 2019 上的 IIS 10 上的 WCF 服务失败

发布于 2025-01-09 23:01:28 字数 1688 浏览 0 评论 0 原文

我正在将 WCF 服务迁移到运行 IIS10 的新 2019 服务器。 这些服务来自的服务器是运行在Server 2012R2上的IIS8.5。 很明显,正如许多讨论所表明的那样,IIS 备份/恢复可能/将会失败。 我已经从 VS2019 设置了远程部署,与旧服务器相同。 我可以毫无问题地部署 Web 和 REST 服务 - 但 WCF 服务失败:

Fiddler 报告 404 Not Found。 在调试下通过测试程序调用服务会出现以下情况:

25-02 11:09:43 [24016] 致命 bSm.Kll.Program - System.ServiceModel.ProtocolException:远程服务器返回意外响应:(405) 不允许方法。 ---> System.Net.WebException:远程服务器返回错误:(405) 不允许方法。 在 System.Net.HttpWebRequest.GetResponse() 在 System.ServiceModel.Channels.HttpChannelFactory`1.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan 超时) --- 内部异常堆栈跟踪结束 ---

服务器堆栈跟踪:
1 工厂、WebException responseException、ChannelBinding channelBinding)
在System.ServiceModel.Channels.HttpChannelFactory1.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan超时)
在System.ServiceModel.Channels.RequestChannel.Request(消息消息,TimeSpan超时)
在System.ServiceModel.Dispatcher.RequestChannelBinder.Request(消息消息,TimeSpan超时)
在 System.ServiceModel.Channels.ServiceChannel.Call(字符串操作、布尔单向、ProxyOperationRuntime 操作、Object[] ins、Object[] outs、TimeSpan 超时)
在 System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall,ProxyOperationRuntime 操作)
在System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage消息)

我有理由确定我缺少该服务的凭据,问题是该服务器强制执行的附加要求在哪里/是什么。

顺便说一句: 我已经遇到过这样的问题:Web 部署工具对“用户委托”有额外的要求,这本身就是一个很大的障碍。在这一要求公布之前,必须从 MS 网站收集该工具的 3.6 版本。

I am migrating WCF services to a new 2019 server running IIS10.
The server that these services come from is a IIS8.5 running on Server 2012R2.
It is obvious that a IIS backup/restore might/will fail as a number of discussions will suggest.
I have set up my remote deployment from VS2019 the same as for the old server.
I can deploy webs and REST services without any problems - BUT WCF services fail:

Fiddler reports 404 Not Found.
Calling the service via test programs under debug brings up the following:

25-02 11:09:43 [24016] FATAL bSm.Kll.Program - System.ServiceModel.ProtocolException: The remote server returned an unexpected response: (405) Method Not Allowed. ---> System.Net.WebException: The remote server returned an error: (405) Method Not Allowed.
at System.Net.HttpWebRequest.GetResponse()
at System.ServiceModel.Channels.HttpChannelFactory`1.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout)
--- End of inner exception stack trace ---

Server stack trace:
at <System.ServiceModel.Channels.HttpChannelUtilities.ValidateRequestReplyResponse(HttpWebRequest request, HttpWebResponse response, HttpChannelFactory1 factory, WebException responseException, ChannelBinding channelBinding)<br> at System.ServiceModel.Channels.HttpChannelFactory1.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout)
at System.ServiceModel.Channels.RequestChannel.Request(Message message, TimeSpan timeout)
at System.ServiceModel.Dispatcher.RequestChannelBinder.Request(Message message, TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)

I am reasonable sure that I am missing credentials for the service, the problem is WHERE / WHAT is the additional requirement enforced by this server.

As an aside:
I already ran across the problem that the Web Deployment tool has a extra requirement for a "User delegate" which was quite a hurdle on its own. The 3.6 version of the tool had to be collected from the MS website before this requirement was revealed.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文