我有一个现有的 Web 应用程序,它安装在多台机器上。脚本客户端和 .net 客户端通过一台机器使用“.asmx”服务,将所有调用路由到其他机器。
客户端----> |网站\虚拟目录(HttpHandler)| ----> |其他服务器\真正的.asmx|
我添加了一个执行相同功能的新 .svc 服务,并为它添加了一个处理程序(目录的配置):
<system.webServer>
<handlers>
<add name="MY_ASMX" verb="*" path="*.asmx" type="MY.AO.HttpProxy, Astea.AO.HttpProxy" resourceType="Unspecified" preCondition="integratedMode" />
<add name="MY_ASPX" verb="*" path="*.aspx" type="MY.AO.HttpProxy, Astea.AO.HttpProxy" resourceType="Unspecified" preCondition="integratedMode" />
<add name="MY_WSDL" verb="*" path="*.wsdl" type="MY.AO.HttpProxy, Astea.AO.HttpProxy" resourceType="Unspecified" preCondition="integratedMode" />
<add name="MY_SVC" verb="*" path="*.svc" type="MY.AO.HttpProxy, Astea.AO.HttpProxy" resourceType="Unspecified" preCondition="integratedMode" />
虽然 asmx 请求路由正常,但我在终端服务器上的新 .svc 没有被调用,甚至 Httphandler 也被跳过。如果我直接在另一台机器上调用 .svc 就可以了。
我得到的错误是:
WebHost failed to process a request.
Sender Information: System.ServiceModel.Activation.HostedHttpRequestAsyncResult/26458746
Exception: System.Web.HttpException (0x80004005): The service '/Mysite/MyDirectory/settings.svc' does not exist. ---> System.ServiceModel.EndpointNotFoundException: The service '/Mysite/MyDirectory/settings.svc' does not exist.
我已经尝试了以下
- 将“buildProviders”添加到删除 .svc 的编译部分
- 单击 MimeTypes 并输入“.svc”和“application/octet-stream”并保存
- 添加处理程序:
没有任何帮助,没有调用 http 处理程序
ps 我正在使用 AppPool .net 4.0 Integrated