C# 通过Web服务从silverlight更新会话变量
我有一个aspx web表单项目,正在使用Silverlight组件通过客户端的扫描仪获取图像,扫描完成后,我需要将两个字节数组发送到aspx会话变量,以便根据记录保存这些字节数组 我目前正在尝试将一个基本字符串从Silverlight发送到aspx,以尝试更新会话变量(在升级之前,尝试使基础工作正常) 但是,当我尝试更新会话变量时,我得到了一个NullReferenceException,并从Web服务得到一个响应“NotFound” 以下是我现在拥有的: 网络服务:C# 通过Web服务从silverlight更新会话变量,c#,web-services,silverlight,nullreferenceexception,C#,Web Services,Silverlight,Nullreferenceexception,我有一个aspx web表单项目,正在使用Silverlight组件通过客户端的扫描仪获取图像,扫描完成后,我需要将两个字节数组发送到aspx会话变量,以便根据记录保存这些字节数组 我目前正在尝试将一个基本字符串从Silverlight发送到aspx,以尝试更新会话变量(在升级之前,尝试使基础工作正常) 但是,当我尝试更新会话变量时,我得到了一个NullReferenceException,并从Web服务得到一个响应“NotFound” 以下是我现在拥有的: 网络服务: namespace XX
namespace XXXX
{
/// <summary>
/// Summary description for EnrollService
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
// [System.Web.Script.Services.ScriptService]
public class EnrollService : System.Web.Services.WebService
{
[WebMethod]
public void SetSessionEmpIDs(string Templates)
{
Session.Add("EmployeeIDs", Templates);
}
}
}
尝试发送文件的byte[]数组块(~1024字节或更多,您需要找出适合您的配置/客户端环境的最佳大小)并在服务器上组装它们——这是一种更可行、更灵活的方法('vector array'块文件表示更自然+服务绑定/通道有发送/接收数据大小限制)
我不建议使用对象和接口WCF方法参数/返回类型,因为这可能会导致与某些客户端不兼容(根据WS-standards/specs)Hi@SalientBrain,谢谢你的评论,但是自从这篇文章在让Web服务的基础工作方面遇到了其他问题,也许你能帮我解决这个问题吗?Hi SalientBrain和@John Saunders,我找到了一个解决方法,而不是现在使用会话变量(尽管我面临另一个问题-新文章),因为我已经在这项任务上花费了很多时间…我以后可能会再次讨论这个问题,但感谢你们两位的评论。作为记录,我不知道如何通过服务更新会话变量,因为该服务没有引用要访问的用户会话变量(我相信这就是为什么使用NullReference的原因)但是,我将来可能会被证明是错误的。几乎所有的
NullReferenceException
情况都是相同的。请参阅“”以获得一些提示。
EnrollServiceReference.EnrollServiceSoapClient client = new EnrollServiceReference.EnrollServiceSoapClient();
client.SetSessionEmpIDs("IDsDONE");