我已经使用wsHTTPBinding配置了WCF服务,但即使这样我也得到了错误
Run Code Online (Sandbox Code Playgroud)Contract requires Session, but Binding 'BasicHttpBinding' doesn't support it or isn't configured properly to support it.
这是服务合同定义
<ServiceContract(SessionMode:=SessionMode.Required)>
Public Interface IPrivateService
Run Code Online (Sandbox Code Playgroud)
这是服务实现定义
<ServiceBehavior(InstanceContextMode:=InstanceContextMode.PerSession)>
Public Class PrivateService
Implements IPrivateService
Run Code Online (Sandbox Code Playgroud)
这是配置设置
<services>
<service behaviorConfiguration="behaviorAction" name="Viking.Service.PrivateService">
<endpoint address="RequiredService" binding="wsHttpBinding" bindingConfiguration="bindingAction" contract="Viking.Service.IPrivateService">
<identity>
<dns value="localhost"/>
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
</service>
</services>
<bindings>
<wsHttpBinding>
<binding name="bindingAction" transactionFlow="false" sendTimeout="00:30:00" receiveTimeout="00:30:00">
<reliableSession enabled="true"/>
</binding>
</wsHttpBinding>
</bindings>
Run Code Online (Sandbox Code Playgroud)
真正感谢任何关于这个问题的建议.
我有以下简单的WCF库,它是在Visual Studio 2008上开发的.
当运行调用此wcf服务的WCFTestClinet/javascript(使用SOAP)时,我得到以下场景的错误值:
1.GetNumber - > output:"您的号码是0"
2.SetNumber - >无输出
3. GetNumber - >输出:"你的号码是0" 而不是输出:"你的号码是8"!!!
任何人都可以解释为什么会发生这种情况,我该如何解决?
谢谢
public class Service1 : IService1
{
private int Number;
public string GetData(int value)
{
return string.Format("You entered: {0}", value);
}
public CompositeType GetDataUsingDataContract(CompositeType composite)
{
if (composite.BoolValue)
{
composite.StringValue += "Suffix";
}
return composite;
}
public string GetNumber()
{
return string.Format("Your number is : {0}", Number);
}
public void SetNumber()
{
Number = 8;
}
}
Run Code Online (Sandbox Code Playgroud)