我已在 ASP.NET 站点上名为 WebServices
的子文件夹中发布了 WCF 服务 (MyService.svc
)。
在本地 ASP.NET Web 服务器上运行时,它工作正常。例如,当发布到 IIS 运行的站点并尝试访问 /WebServices/MyService.svc/jsdebug
时,我收到 401 Unauthorized
。网站的其余部分运行良好。
有人知道为什么吗?
以下是MyService.svc
的内容:
<%@ServiceHost
Language="C#"
Debug="true"
Service="MyApp.Core.MyService, MyApp.Core"
Factory="System.ServiceModel.Activation.WebScriptServiceHostFactory"
%>
MyApp.Core.MyService
是一个实现 IMyService
的类(具有属性 ServiceContract
和带有属性 OperationContract 的方法声明)
)。
最佳答案
默认情况下,除非另有配置,否则 WCF 服务将执行 Windows 身份验证。我认为以下应该可以解决问题:
<bindings>
<wsHttpBinding>
<binding name="wsHttp">
<security mode="None"/>
</binding>
</wsHttpBinding>
</bindings>
..并配置您的端点以使用此绑定(bind)配置。
关于asp.net - 公共(public) WCF 服务需要身份验证,尽管未指定安全性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1839271/