WCF 服务 404 错误

标签 wcf http service handler

我正在尝试设置 WCF 服务,但遇到了一些问题。当我输入

时,服务工作并加载 wsdl 页面
www.mydomain.com/Service1.svc

但是当我使用

www.mydomain.com/Service1.svc/

或者尝试使用我得到的任何get方法

The resource cannot be found.

Description: HTTP 404.

我的web.config文件如下

<?xml version="1.0"?>
<configuration>

  <system.webServer>
    <handlers>
      <remove name="PageHandlerFactory-ISAPI-4.0"/>
      <add name="PageHandlerFactory-ISAPI-4.0" path="*" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
      <remove name="ASP.NET-ISAPI-4.0-Wildcard"/>
      <add name="ASP.NET-ISAPI-4.0-Wildcard"
         path="*" verb="GET,HEAD,POST,DEBUG"
         modules="IsapiModule"
         scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll"
         preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
      <remove name="svc-Integrated-4.0" />
      <add name="svc-Integrated-4.0" path="*" verb="*" type="System.ServiceModel.Activation.ServiceHttpHandlerFactory, System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" resourceType="Unspecified" requireAccess="Script" preCondition="integratedMode,runtimeVersionv4.0" />
    </handlers>
    <validation validateIntegratedModeConfiguration="false"/>
  </system.webServer>
  <system.web>
    <customErrors mode="Off"/>
    <compilation debug="true" targetFramework="4.0">
    </compilation>
    <httpHandlers>
      <remove verb="*" path="*.svc"/>
      <add path="*.svc" verb="*" type="System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" validate="false" />
    </httpHandlers>
  </system.web>
  <system.serviceModel>
    <services>
      <service name="RestService.Service1" behaviorConfiguration="ServiceBehaviour" >
        <endpoint address="" binding="webHttpBinding" contract="RestService.IService1" behaviorConfiguration="web">

        </endpoint>
        <host>
          <baseAddresses>
            <add baseAddress="http://mydomain.com/Service1"/>
          </baseAddresses>
        </host>
      </service>

    </services>

    <behaviors>
      <serviceBehaviors>
        <behavior name="ServiceBehaviour" >
          <serviceMetadata httpGetEnabled="true"/>
        </behavior>
      </serviceBehaviors>
      <endpointBehaviors>
        <behavior name="web">
          <webHttp/>
        </behavior>
      </endpointBehaviors>
    </behaviors>



    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
  </system.serviceModel>
 <system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
  </system.webServer>

</configuration>

Service.svc文件如下:

namespace RestService
{
    public class Service1 : IService1
    {
        public bool LoginUser( string Username, string password )
        {
            return true;
        }
    }
}

IService.cs如下:

namespace RestService
{
    [ServiceContract]
    public interface IService1
    {
        [OperationContract]
        [WebInvoke(Method = "GET",
            ResponseFormat = WebMessageFormat.Json,
            //BodyStyle = WebMessageBodyStyle.Wrapped,
            UriTemplate = "login/{username}/{password}")]
        bool LoginUser(string username, string password);
    }
 }

如果有帮助,服务器上的管道模式是“集成”。我不确定我的托管服务提供商 (pipeten) 使用的 IIS 版本是 7.5

最佳答案

好吧,事实证明这是我犯的一个简单错误,我错过了 .添加处理程序时。而不是 path = ""它应该是 path="."

<add name="ASP.NET-ISAPI-4.0-Wildcard"
         path=".*" verb="GET,HEAD,POST,DEBUG"
         modules="IsapiModule"
         scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll"
         preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />

关于WCF 服务 404 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10080360/

相关文章:

Angular 5 - 组件和服务之间的通信

android - 当 Android 重启服务时,在 Android 服务中启动的线程会发生什么?

c# - Catch-22 阻止了 WIF 保护的流式 TCP WCF 服务;毁了我的圣诞节,心理健康

sql - 关于数据库变更的通知

wcf - 如何使用WSDL文件创建WCF代理?

ajax - 是否可以在 ajax get 请求中获取页面的一部分?

javascript - 消除 "X-Powered-By" header 是否会自动从 HTTP 响应中消除 "Server" header

c# - 自启动和故障异常

http - 以反向字节顺序读取Nginx HTTP响应流

linux - 如何在 nslcd.service 之后启动 docker.service?