0

我在应用程序启动时运行的代码中有一个 WebApi 服务的配置:

var configuration = new WebApiConfiguration
{
    Security = (uri, binding) => {
        binding.Mode = HttpBindingSecurityMode.TransportCredentialOnly; 
        binding.Transport.ClientCredentialType = HttpClientCredentialType.Windows;
    },
    CreateInstance = ((type, requestMessage, o) => container.Resolve(type)),
    ErrorHandlers = (handlers, endpoint, description) => handlers.Add(new GlobalErrorHandler())
};

现在,我想将其从代码中移出并在 web.config 中进行。等价物是什么?到目前为止,我在 web.config 运行时有这个,我不确定它是否正确,而且我不知道 CreateInstance 和 ErrorHandlers 在配置中会转换成什么:

<system.serviceModel>
    <bindings>
      <basicHttpBinding>
        <binding name="basicHttp">
          <security mode="TransportCredentialOnly">
            <transport clientCredentialType="Windows"></transport>
          </security>
        </binding>
      </basicHttpBinding>
    </bindings>
    <client />
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true">
    </serviceHostingEnvironment>
  </system.serviceModel>
4

1 回答 1

0

这是正确的。

但是您使用的是 WCF Web API,实际上是 CTP 版本的 ASP.NET Web API,所以我建议您迁移到它。这并不难,因为它们很相似。

迁移的另一个原因是,当我使用 WCF Web API 时,使用 config 配置 HTTPS 和安全性对我不起作用。以编程方式配置工作。所以我认为这是某种错误。

于 2012-10-10T15:42:24.943 回答