Я пытаюсь получить доступ к сессии asp.net в службе WCF. Я делаю jQuery AJAX
звонки из моего приложения asp.net в службу wcf. Я прошел через много вопросов и статей и попробовал все, что они говорили, но все же я не могу получить доступ к сеансу клиента в службе wcf. Когда я пишу DataSet ds = HttpContext.Current.Session["data"] as DataSet;
, ds
всегда имеет значение null.не удается получить доступ к сеансу asp.net в службе wcf
Что мне здесь не хватает?
Это как моя служба WCF выглядит следующим образом: // Интерфейс
[ServiceContract(SessionMode = SessionMode.Allowed)]
public interface IMyService
{
[OperationContract(IsInitiating=true)]
[WebInvoke(Method = "POST", BodyStyle = WebMessageBodyStyle.Wrapped, ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json)]
string GetData();
[OperationContract]
[WebInvoke(Method = "POST", BodyStyle = WebMessageBodyStyle.Wrapped, ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json)]
bool SaveData(string data);
}
// Служба
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)]
public class MyService : IMyService
{
public string GetData()
{
return "something";
}
public bool SaveData(string data)
{
DataSet ds = HttpContext.Current.Session["data"] as DataSet;
return true;
}
}
Я создаю набор данных в session_start
из Global.asax
и положить его в сессии так что я могу использовать его в приложении, если пользовательский сеанс действителен.
protected void Session_Start(object sender, EventArgs e)
{
DataSet ds = new DataSet();
//Table to hold Product Selection
DataTable dt = new DataTable("T1");
dtSSNCertification.Columns.Add("Col1");
ds.Tables.Add(dt);
Session.Add("data", ds);
}
Вот как выглядит мой проект ФОС-х web.config bindings
как:
<service name="MyService">
<endpoint address="" behaviorConfiguration="JSONPBehaviorConfiguration"
binding="customBinding" bindingConfiguration="jsonpBinding"
contract="IMyService">
</endpoint>
</service>
<customBinding>
<binding name="jsonpBinding" >
<jsonpMessageEncoding />
<httpTransport manualAddressing="true"/>
</binding>
</customBinding>
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
</system.serviceModel>
да. Это здесь. – Asdfg
это не работает, потому что я делаю вызов AJAX к моему сервису? – Asdfg
это не сработало! –