通过Web Service从Silverlight更新会话变量

时间:2013-10-04 10:07:15

标签: c# web-services silverlight nullreferenceexception

我有一个aspx web表单项目,并且使用Silverlight组件通过客户端扫描程序获取图像,一旦扫描完成,我需要将两个字节数组发送到aspx会话变量,这样我就可以保存这些字节数组针对记录。

我目前只是尝试从Silverlight发送一个基本字符串到aspx来尝试更新会话变量(尝试使基础知识正常工作,然后单步执行)

当我尝试更新会话变量时,我得到一个NullReferenceException,并从WebService获取响应“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);
    }
}
}

Silverlight方面:

EnrollServiceReference.EnrollServiceSoapClient client = new EnrollServiceReference.EnrollServiceSoapClient();
client.SetSessionEmpIDs("IDsDONE");

1 个答案:

答案 0 :(得分:0)

尝试发送文件的byte []数组块(大约1024字节或更多,您需要确定配置/客户端环境的最佳大小)并将它们组装到服务器上 - 这是更可行和灵活的方法('向量数组'块文件表示更自然+服务绑定/通道已发送/接收数据大小限制。)

我不建议使用对象和接口WCF方法参数/返回类型AT ALL,因为这可能导致与某些客户端不兼容(根据WS-standards / specs)