C# 对象引用未设置为实例
我不熟悉c#和web服务。。。通常我使用python很长一段时间 我需要连接一个将在IIS上运行的web服务,本地调试成功,我将其部署到本地测试服务器,但由于它位于另一台计算机上,我无法通过web浏览器完全测试它 当我尝试使用suds(python)访问它时,我的第一个测试函数C# 对象引用未设置为实例,c#,web-services,C#,Web Services,我不熟悉c#和web服务。。。通常我使用python很长一段时间 我需要连接一个将在IIS上运行的web服务,本地调试成功,我将其部署到本地测试服务器,但由于它位于另一台计算机上,我无法通过web浏览器完全测试它 当我尝试使用suds(python)访问它时,我的第一个测试函数helloworld运行正常,这表明我的服务是可访问的 但是,当我尝试调用接受参数并返回custon定义的数据类型的服务funton时,我的服务只是返回未设置为对象实例的对象引用 正如我所说,我对c#和web服务还不熟悉。
helloworld
运行正常,这表明我的服务是可访问的
但是,当我尝试调用接受参数并返回custon定义的数据类型的服务funton时,我的服务只是返回未设置为对象实例的对象引用
正如我所说,我对c#和web服务还不熟悉。。。所以我无法发现我的错误:(
我遗漏了什么?根据给定的信息不可能确定,但我打赌
baglanti.someFunc(deviceId)
返回null
,并且在尝试获取bakiyeSorgusu.availableBalance
时会出现异常。如果是这样,我会:
- 检查在什么情况下
可能返回someFunc
,并确定这是否正常null
- 如果可以,在服务调用中添加一个空检查,这样您就不会试图从空引用中获取
availableBalance
- 如果不正常,请修复
中的错误someFunc
顺便说一句,如果可能的话,我建议你用英语编写代码(至少在网上发布代码示例时)。这样,代码对更多的人来说是有意义的。根据给定的信息不可能确定,但我敢打赌
baglanti.someFunc(deviceId)
返回null
,并且在尝试获取bakiyeSorgusu.availableBalance
时出现异常。如果是这样,我会:
- 检查在什么情况下
可能返回someFunc
,并确定这是否正常null
- 如果可以,在服务调用中添加一个空检查,这样您就不会试图从空引用中获取
availableBalance
- 如果不正常,请修复
中的错误someFunc
作为补充说明,我建议您尽可能用英语编写代码(至少在在线发布代码示例时)。这样,代码将对更多的人有意义。您的方法bakiyeSor没有返回值。缺少返回值。您的方法bakiyeSor没有返回值。缺少返回值。最后,我们解决了问题
我使用的是api提供商提供的DLL,它对cpu和网络设备id有一些控制功能。我的开发机器是win7,但在测试服务器上,我们有虚拟win7,它在虚拟机上运行……因为虚拟操作系统没有真正的cpu或网络id,api DLL在虚拟操作系统上失败,但在虚拟机上运行最后,我们解决了这个问题
我使用的是api提供商提供的DLL,它对cpu和网络设备id有一些控制功能。我的开发机器是win7,但在测试服务器上,我们有虚拟win7,它在虚拟机上运行……因为虚拟操作系统没有真正的cpu或网络id,api DLL在虚拟操作系统上失败,但在虚拟机上运行实际上,在一台真正的机器上….net异常包含的信息远远不止这些;它们包含堆栈跟踪,通常还有行号。仅此一点就应该准确地指向行为不正常的代码。在哪一行中出现错误?您的web服务方法似乎没有返回语句,因此我认为这甚至不会导致错误le!可能重复的.net异常包含的信息远不止这些;它们包含stacktrace,通常还有行号。仅此一点就应该准确地指向错误代码。在哪一行中出现错误?您的web服务方法似乎没有返回语句,因此我认为这甚至不会编译!poss抱歉,修复了…我的代码更长,所以这是我遇到问题的部分…抱歉,修复了…我的代码更长,所以这是我遇到问题的部分。。。
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;
}
}