C# Web服务应用程序的全局已知变量
我需要一个web服务应用程序上的全局已知变量。 由于是基于web的,因此全局声明变量的值在再次调用时保持不变 我还尝试在web方法上使用Session,但在调用另一个方法时它被清除 下面是一个代码示例 用户界面部分C# Web服务应用程序的全局已知变量,c#,web-services,session-state,C#,Web Services,Session State,我需要一个web服务应用程序上的全局已知变量。 由于是基于web的,因此全局声明变量的值在再次调用时保持不变 我还尝试在web方法上使用Session,但在调用另一个方法时它被清除 下面是一个代码示例 用户界面部分 private void btnOKLogIn_Click(object sender, EventArgs e) { CaprepWS caprepWS = new CaprepWS(); caprepWS.setDatabase(Program.isProduct
private void btnOKLogIn_Click(object sender, EventArgs e)
{
CaprepWS caprepWS = new CaprepWS();
caprepWS.setDatabase(Program.isProduction);
string usrInfo = caprepWS.getUserInfo(tbUserName.Text.ToUpper().Trim());
}
Web服务部分
[WebMethod(Description = "Database switcher", EnableSession = true)]
public void setDatabase(bool isProduction)
{
Session["isProduction"] = isProduction;
}
[WebMethod(Description = "Get User Info", EnableSession = true)]
public string getUserInfo(string username)
{
string wsResult = null;
DataAccess sql = new DataAccess((bool)Session["isProduction"]);
try
{
sql.OpenConn();
wsResult = sql.Scalar(
sql.spReader(sqlRoot + "spGetUserInfo.SQL")
, username);
}
catch (Exception ex)
{
errorWritter(ex.Message);
wsResult = null;
}
finally
{
sql.Dispose();
}
return wsResult;
}
但是,即使我在UI上使用相同的实例,另一个方法上的会话(在getUserInfo上)也是未知的,并且它是空的
问题是,我避免将此变量作为web服务上的参数放在每个web方法上,这就是为什么我需要全局声明它。看起来您正在寻找应用程序的配置设置 例如,如果使用ASP.Net运行服务,则配置和自定义值如下所示:
:
使用静态变量怎么样静态变量可以工作。谢谢
var isProduction = ConfigurationManager.AppSettings["IsProduction"] == "true";