.net 如何在托管在IIS上的wcf服务中使用http请求访问任何方法?
我有一个WCF服务应用程序。我想通过web浏览器上的http请求访问此服务 当我在IISExpress上运行WCF服务时,它可以工作,但当我在IIS上发布该服务时,返回404错误。如何解决此问题 IService.cs.net 如何在托管在IIS上的wcf服务中使用http请求访问任何方法?,.net,http,wcf,iis,.net,Http,Wcf,Iis,我有一个WCF服务应用程序。我想通过web浏览器上的http请求访问此服务 当我在IISExpress上运行WCF服务时,它可以工作,但当我在IIS上发布该服务时,返回404错误。如何解决此问题 IService.cs namespace Protek.WebService { [ServiceContract] public interface IService { [WebGet(UriTemplate = "HelloWorld")]
namespace Protek.WebService
{
[ServiceContract]
public interface IService
{
[WebGet(UriTemplate = "HelloWorld")]
[OperationContract]
string HelloWorld();
}
}
namespace Protek.WebService
{
public class Service : IService
{
public string HelloWorld()
{
return "Hello World";
}
}
}
Service.svc
<%@ ServiceHost Language="C#" Debug="true" Service="Protek.WebService.Service" CodeBehind="Service.svc.cs" %>
Web.config
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="DefaultBehavior">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="WebBehavior">
<webHttp />
</behavior>
</endpointBehaviors>
</behaviors>
<services>
<service behaviorConfiguration="DefaultBehavior" name="Protek.WebService.Service">
<endpoint address="ws" binding="wsHttpBinding" contract="Protek.WebService.IService"/>
<endpoint address="" binding="webHttpBinding" contract="Protek.WebService.IService" behaviorConfiguration="WebBehavior"/>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
<host>
<baseAddresses>
<add baseAddress="http://localhost:5858/Service" />
</baseAddresses>
</host>
</service>
</services>
</system.serviceModel>
我通过将这一行添加到我的服务Web.config文件中解决了这个问题。我的http错误是404.3
<system.webServer>
<handlers>
<add
name="svc-Integrated"
path="*.svc"
verb="*"
type="System.ServiceModel.Activation.HttpHandler, System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</handlers>
</system.webServer>
首先,stackoverflow是一个基于英语的技术问答论坛,请在描述和截图中使用英语。
如果您想发布WCF rest服务,请参考以下回复。
此外,当我们在IIS中承载WCF服务时,基址由IIS提供,无需将基址添加到配置文件中。
如果有什么我可以帮忙的,请随时告诉我。您是否尝试在windows功能中启用Http激活?位于控制面板程序和功能中的打开或关闭netframework高级服务wcf服务http激活的windows功能。