使用匿名身份验证配置 REST wcf

configuring a REST wcf with anonymous auth

我有关于在 JSON 中与网站的某些客户端部分通信的网络服务的问题 网络服务在网站解决方案中,并在 aspx 页面(网络表单)

中使用 VB

我的网络配置是:

<?xml version="1.0"?>
<configuration>
  <system.serviceModel>
    <bindings>

      <webHttpBinding>

        <binding name="Binding1">

          <security  mode="None">
            <transport  clientCredentialType="None" />
          </security>

        </binding>
      </webHttpBinding>
    </bindings>
    <behaviors>
      <serviceBehaviors>
        <behavior name="ServiceBehavior">
          <serviceMetadata httpGetEnabled="true"/>
          <serviceDebug includeExceptionDetailInFaults="true"/>
          </behavior>
        </serviceBehaviors>
      <endpointBehaviors>
        <behavior name="ServiceAspNetAjaxBehavior">
          <enableWebScript/>
          </behavior>
        </endpointBehaviors>
    </behaviors>
    <!--<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>-->
    <services>
      <service name="Z60MRTR002.FrmCommandeAction" behaviorConfiguration="ServiceBehavior">
        <endpoint address="" binding="webHttpBinding" bindingConfiguration="Binding1" contract="Z60MRTR002.FrmCommandeAction" behaviorConfiguration="ServiceAspNetAjaxBehavior" ></endpoint>
          <!--<endpoint contract="IMetadataExchange" binding="mexHttpBinding" address="mex" />-->
      </service>
    </services>
  </system.serviceModel>

  <system.web>
    <compilation defaultLanguage="vb" debug="true" targetFramework="4.0"/>
    <customErrors mode="Off"/>
    <authentication mode="Windows"/>
    <authorization>
        <allow users="*"/>
    </authorization>

    <sessionState mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes" cookieless="false" timeout="20"/>

    <globalization requestEncoding="utf-8" responseEncoding="utf-8"/>
    <pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID"/>
  </system.web>
  <appSettings>
            <!-- SOME SETTINGS -->
  </appSettings>
</configuration>

并且我在 IIS 服务器上激活了匿名身份验证。

它在 IISExpress(本地)上运行良好,但在我的生产服务器(iis6.0)上运行不正常,求救!

错误是:

[NotSupportedException: 服务要求的身份验证安全参数 'Anonymous',应用程序 IIS 服务未激活。]

英文:此服务的安全参数需要 "anonymous" 身份验证,但未为托管 IIS 应用程序激活

编辑: 我将 wcf 复制并粘贴到一个新的 wcf 项目,然后在服务器上发布它,确保启用了匿名身份验证。它告诉我身份验证未激活。

关注了这个: https://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/f594e137-e2da-4b22-ab58-f8edba938802.mspx?mfr=true

如果您需要更多信息,请问我。 谢谢!

按照以下步骤确保在 IIS 中启用匿名身份验证: https://technet.microsoft.com/en-us/library/cc731244%28v=ws.10%29.aspx

我发现了我的错误,它与网络配置相去甚远,服务器的 config.I 实际上也没有一个名为 HttpContext.Current.User 的子函数。 .

服务器即使激活也返回错误: 所以任何激活匿名身份验证但仍然收到错误的人,你可能需要仔细检查你的代码:)

我仍然不确定为什么它在 iisExpress.Maybe 它正在调试的事实允许 iisE 访问 HTTPcontext。