我有一个现有的web应用程序,安装在几台机器上。脚本客户端和.net客户端通过一台机器使用".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.我已经试过了
。
没有任何帮助,http处理程序不会被调用。
附注:我正在使用AppPool .net 4.0集成
发布于 2012-04-17 11:51:58
默认情况下,.svc扩展被认为是WCF服务,并且已经为它们提供了处理程序/模块。通过将元素放在<add>元素之前,可以删除现有的处理程序/模块:
<remove name="svc-ISAPI-4.0_32bit" />(或者,如果在win64上:)
<remove name="svc-ISAPI-4.0_64bit" />并且,在<modules>元素中:
<remove name="ServiceModel-4.0" />发布于 2012-04-18 05:53:01
我已经找到了。增加:
<compilation debug="true" >
<buildProviders>
<remove extension=".svc"/>
</buildProviders>
</compilation>导致一个错误,这使我第一次退让:"~/ServiceManagement.svc“要求".svc”的.svc将处于打开状态。
"~/ServiceManagement.svc“是在安装MS AppFabric时自动在机器根配置中创建的。由于我只将该文件夹用于重定向,所以不需要Appfabric,所以我删除了它:
<system.serviceModel>
<serviceHostingEnvironment>
<serviceActivations>
<remove relativeAddress="~/ServiceManagement.svc"/>
</serviceActivations>
</serviceHostingEnvironment>https://stackoverflow.com/questions/10190456
复制相似问题