.net WCF:同时使用流媒体和用户名/密码身份验证
我的WCF服务具有以下要求: a) 客户端从服务器请求一个作为流传输的文件。文件可能是100MB或更大。我需要流或卡盘或任何东西,以确保IIS没有加载到内存中的整个包开始发送之前。 b) 客户端将传输一个标识以标识要下载的文件。应通过提供用户名/密码对用户进行身份验证。 c) 虽然通信的用户名/密码部分需要加密,但对于我们的用例,下载文件的加密是可选的 在我的其他服务中,我返回较小的文件,我使用以下绑定:.net WCF:同时使用流媒体和用户名/密码身份验证,.net,wcf,streaming,wcf-security,.net,Wcf,Streaming,Wcf Security,我的WCF服务具有以下要求: a) 客户端从服务器请求一个作为流传输的文件。文件可能是100MB或更大。我需要流或卡盘或任何东西,以确保IIS没有加载到内存中的整个包开始发送之前。 b) 客户端将传输一个标识以标识要下载的文件。应通过提供用户名/密码对用户进行身份验证。 c) 虽然通信的用户名/密码部分需要加密,但对于我们的用例,下载文件的加密是可选的 在我的其他服务中,我返回较小的文件,我使用以下绑定: <ws2007HttpBinding> <binding nam
<ws2007HttpBinding>
<binding name="ws2007HttpExtern" maxReceivedMessageSize="65536000">
<security mode="Message">
<message clientCredentialType="UserName" />
</security>
</binding>
</ws2007HttpBinding>
到目前为止,我正在使用Web开发服务器(用于生产IIS7)
我有两个问题。
a) 您将如何配置WCF以实现此目标?
b) 如果微软的建议是好的:我做错了什么,错误信息并不能真正帮助我
谢谢。此错误通常与在IIS 7上托管WCF服务有关。默认情况下不支持WCF,因此这里有一些您可以执行的疑难解答
<bindings>
<basicHttpBinding>
<binding name="basicStreaming"
messageEncoding="Mtom" transferMode="StreamedResponse">
<security mode="Transport">
<transport clientCredentialType="Basic" />
</security>
</binding>
</bindings>
<services>
<service behaviorConfiguration="MyProject.WCFInterface.DownloadBehavior"
name="MyProject.WCFInterface.DownloadFile">
<endpoint address="" binding="basicHttpBinding" bindingConfiguration="basicStreaming"
contract="MyProject.WCFInterface.IDownloadFile" />
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="MyProject.WCFInterface.DownloadBehavior">
<serviceMetadata httpGetEnabled="false" httpsGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
</behaviors>
Could not find a base address that matches scheme https for the endpoint with binding BasicHttpBinding. Registered base address schemes are [http].