C# 通过Web服务从silverlight更新会话变量

C# 通过Web服务从silverlight更新会话变量,c#,web-services,silverlight,nullreferenceexception,C#,Web Services,Silverlight,Nullreferenceexception,我有一个aspx web表单项目,正在使用Silverlight组件通过客户端的扫描仪获取图像,扫描完成后,我需要将两个字节数组发送到aspx会话变量,以便根据记录保存这些字节数组 我目前正在尝试将一个基本字符串从Silverlight发送到aspx,以尝试更新会话变量(在升级之前,尝试使基础工作正常) 但是,当我尝试更新会话变量时,我得到了一个NullReferenceException,并从Web服务得到一个响应“NotFound” 以下是我现在拥有的: 网络服务: namespace XX

我有一个aspx web表单项目,正在使用Silverlight组件通过客户端的扫描仪获取图像,扫描完成后,我需要将两个字节数组发送到aspx会话变量,以便根据记录保存这些字节数组

我目前正在尝试将一个基本字符串从Silverlight发送到aspx,以尝试更新会话变量(在升级之前,尝试使基础工作正常)

但是,当我尝试更新会话变量时,我得到了一个NullReferenceException,并从Web服务得到一个响应“NotFound”

以下是我现在拥有的:

网络服务:

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");