【发布时间】:2023-04-01 04:33:01
【问题描述】:
我有一个authenticates via Azure ACS 的 WCF 服务,它运行良好,只是当我将大文件上传到它时,我得到 "(413) Request Entity Too Large"
很明显我需要增加MaxReceivedMessageSize,但是,我的绑定类型不是WSHttpBinding,而是IssuedTokenWSTrustBinding,所以没有公开这个属性,我想我不完全理解HTTP绑定的方式在下面的代码中创建。是否可以以某种方式在我的绑定上配置 MaxReceivedMessageSize?
public override ServiceHostBase CreateServiceHost(string constructorString, Uri[] baseAddresses)
{
string acsUsernameEndpoint = String.Format("https://{0}.{1}/v2/wstrust/13/username", ACSServiceNamespace, AcsHostUrl);
ServiceHost rpHost = new ServiceHost(typeof(DataTransferService));
rpHost.Credentials.ServiceCertificate.Certificate = GetServiceCertificateWithPrivateKey();
rpHost.AddServiceEndpoint(typeof(IUploadService),
Bindings.CreateServiceBinding(acsUsernameEndpoint),
new Uri(ServiceAddress));
// Windows Identity Foundation token handlers can pick up the relevant settings.
ServiceConfiguration serviceConfiguration = new ServiceConfiguration();
// FederatedServiceCredentials.ConfigureServiceHost etc...
return rpHost;
}
public static class Bindings
{
public static Binding CreateServiceBinding(string acsUsernameEndpoint)
{
return new IssuedTokenWSTrustBinding(CreateAcsUsernameBinding(), new EndpointAddress(acsUsernameEndpoint));
}
public static Binding CreateAcsUsernameBinding()
{
return new UserNameWSTrustBinding(SecurityMode.TransportWithMessageCredential);
}
}
【问题讨论】: