代码之家  ›  专栏  ›  技术社区  ›  Blixt

公共WCF服务需要身份验证,尽管未指定安全性

  •  2
  • Blixt  · 技术社区  · 15 年前

    MyService.svc WebServices .

    在本地ASP.NET web服务器上运行时,它工作正常。例如,当发布到IIS运行站点并尝试访问时, /WebServices/MyService.svc/jsdebug 401 Unauthorized . 现场的其余部分工作正常。

    有人知道为什么吗?


    以下是 :

    <%@ServiceHost 
        Language="C#"
        Debug="true" 
        Service="MyApp.Core.MyService, MyApp.Core"
        Factory="System.ServiceModel.Activation.WebScriptServiceHostFactory"
    %>
    

    MyApp.Core.MyService 类是否实现了 IMyService (哪个有属性 ServiceContract OperationContract

    3 回复  |  直到 15 年前
        1
  •  3
  •   Alex    15 年前

    默认情况下,除非另有配置,否则WCF服务将执行Windows身份验证。我认为以下几点可以达到目的:

      <bindings>
        <wsHttpBinding>
          <binding name="wsHttp">
            <security mode="None"/>
          </binding>
        </wsHttpBinding>
      </bindings>
    

        2
  •  1
  •   Community CDub    7 年前

    有3个可能的呼叫被阻止的地方:

    • 在IIS设置中,检查是否启用了匿名身份验证

    以上所有这些都是在它到达WCF配置中可能阻止它的地方之前。但从您对blowdart的评论来看,您似乎尚未配置WCF安全性。

    还要检查IIS日志中的401错误。看看这个 post 这是相关的。

        3
  •  0
  •   blowdart    15 年前

    svc文件不配置安全性,这是配置文件的一部分