首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HTTPHandler和svc

HTTPHandler和svc
EN

Stack Overflow用户
提问于 2012-04-17 11:36:32
回答 2查看 2.9K关注 0票数 1

我有一个现有的web应用程序,安装在几台机器上。脚本客户端和.net客户端通过一台机器使用".asmx“服务,将所有调用路由到其他机器。

客户机

我添加了一个执行相同功能的新.svc服务,并为此添加了一个处理程序(目录的配置):

代码语言:javascript
复制
<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,它就能工作。

我得到的错误是:

代码语言:javascript
复制
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.

我已经试过了

  1. 将"buildProviders“添加到删除.svc
  2. 的编译部分,单击MimeTypes并输入”.svc“和”应用程序/八进制流“,并保存
  3. 添加一个处理程序:

没有任何帮助,http处理程序不会被调用。

附注:我正在使用AppPool .net 4.0集成

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-17 11:51:58

默认情况下,.svc扩展被认为是WCF服务,并且已经为它们提供了处理程序/模块。通过将元素放在<add>元素之前,可以删除现有的处理程序/模块:

代码语言:javascript
复制
<remove name="svc-ISAPI-4.0_32bit" />

(或者,如果在win64上:)

代码语言:javascript
复制
<remove name="svc-ISAPI-4.0_64bit" />

并且,在<modules>元素中:

代码语言:javascript
复制
<remove name="ServiceModel-4.0" />
票数 1
EN

Stack Overflow用户

发布于 2012-04-18 05:53:01

我已经找到了。增加:

代码语言:javascript
复制
<compilation debug="true" >
  <buildProviders>
    <remove extension=".svc"/>
  </buildProviders>
</compilation>

导致一个错误,这使我第一次退让:"~/ServiceManagement.svc“要求".svc”的.svc将处于打开状态。

"~/ServiceManagement.svc“是在安装MS AppFabric时自动在机器根配置中创建的。由于我只将该文件夹用于重定向,所以不需要Appfabric,所以我删除了它:

代码语言:javascript
复制
<system.serviceModel>
<serviceHostingEnvironment>
  <serviceActivations>
    <remove relativeAddress="~/ServiceManagement.svc"/>
  </serviceActivations>
</serviceHostingEnvironment>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10190456

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档