我是c#和Web服务的新手...通常我会使用python很长一段时间......
我需要连接一个将在IIS上运行的Web服务,本地调试成功,我将其部署到我的本地测试服务器,但由于这是另一台计算机,我无法通过Web浏览器完全测试它。
当我尝试访问它suw(python)时,我的第一个测试函数Hello World
正确运行,这表明我的serice是可访问的......
但是当我尝试调用接受参数并返回定义数据类型的服务时,我的服务只返回object reference not set to an instance of an object
正如我所说,我是c#和网络服务的新手...所以我无法发现我的错误:(
public class Balance{
private decimal _currentBalance;
public decimal currentBalance
{
get { return _currentBalance; }
set { _currentBalance = value; }
}
}
public class Service1 : System.Web.Services.WebService
{
private string _deviceId;
public string deviceId
{
get { return _deviceId; }
set { _deviceId = value; }
}
CrAc conn;
CResult connResult;
private void connectToServer()
{
conn= new CrAc();
connResult= conn.Connect(deviceId);
}
private bool connectionControl()
{
return connResult.CRCStatus;
}
[WebMethod(Description="asdf")]
public Balance checkBalance(string deviceId) {
Balance balance = new balance {currentBalance= 0.00m};
this.deviceId = deviceId;
connectToServer();
if (connectionControl())
{
XResult askBalance = conn.someFunc(deviceId);
balance.currentBalance = askBalance.availableBalance;
}
return balance;
}
}
我缺少什么?
答案 0 :(得分:1)
根据给定的信息无法确定,但我的赌注是baglanti.someFunc(deviceId)
返回null
,并且在尝试获取bakiyeSorgusu.availableBalance
时会出现异常。如果是这样,我会:
someFunc
可能返回null
的情况,并确定是否可以。availableBalance
someFunc
。作为旁注,如果可能,我建议您用英语编写代码(至少在网上发布代码示例时)。这样代码就会对更多人有意义。
答案 1 :(得分:0)
你的方法bakiyeSor没有返回值。缺少return
。
答案 2 :(得分:0)
最后,我们解决了这个问题...
我使用的是从api提供程序获得的DLL,它具有一些cpu和网络设备ID的控制功能。我的开发机器是win7,但在测试服务器上,我们有虚拟win7在虚拟机上运行...由于虚拟操作系统没有真正的cpu或网络ID',api DLL在虚拟操作系统上失败,但运行完美地在真机上...