2011-10-28 2 views
1

나는 일반적으로 내가 오랜 시간 동안 파이썬을 사용하여 ... C# 및 웹 서비스에 새로운 오전으로 설정되지객체 참조가 ... 인스턴스

내가 IIS에서 실행하는 웹 서비스를 wirete 필요

, 로컬 디버깅이 성공적으로 수행되었지만 로컬 테스트 서버에 배포했는데 다른 컴퓨터에서 실행 되었기 때문에 웹 브라우저를 통해 테스트 할 수 없었습니다 ...

idsthread (Python)에 액세스하려고하면 내 첫 번째 테스트 함수 Hello World가 올바르게 실행됩니다. 내 serice에 액세스 할 수 있음을 보여줍니다.

하지만 매개 변수를 허용하는 서비스 펑션을 호출하려고 시도하고 ret 내 서비스는 단순히 object reference not set to an instance of an object

내가 말했듯이, 나는 C# 및 웹 서비스에 새로운 오전 ... 반환하는 custon 정의 데이터 형식을 URN 그래서 내가 무엇 오전 내 실수 :(

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; 
    } 
} 

를 발견하지 못했습니다 있어야 할 곳에 없는?

+1

.net 예외에는 훨씬 더 많은 정보가 포함되어 있습니다. 스택 추적과 일반적으로 줄 번호가 포함됩니다. 혼자서 * 당신을 잘못 행동하는 코드로 안내해야합니다. –

+1

어디서 오류가 발생합니까? – Fischermaen

+0

웹 서비스 메소드에 return 문이없는 것 같아서 컴파일 할 필요가 없다고 생각합니다! –

답변

0

마지막으로, 우리는 ... 문제를 해결. 내 개발 컴퓨터 win7,하지만 테스트 서버에서 우리가 가상 상자에서 실행되는 가상 win7 ... 가상 운영 체제 실제 cpu 또는 네트워크 ID가 없기 때문에 'api DLL 가상 운영 체제에서 실패하지만 실행됩니다 실제 컴퓨터에서 완벽하게 ...

1

주어진 정보를 기반으로 확신 할 수 없지만 baglanti.someFunc(deviceId)null을 반환하며 bakiyeSorgusu.availableBalance을 얻으려고하면 예외가 발생합니다. 그렇다면, 내가 것 :

  • 은 무엇에 따라 상황이 someFuncnull를 반환하고 괜찮 여부를 결정할 수 있습니다 검사합니다. 이 정상이면 당신이 그것을 확인하지의 경우, null 참조
  • 에서 availableBalance를 얻으려고 someFunc의 버그를 수정하지 않도록
  • 는, 서비스 호출에 널 체크를 추가합니다.

가능한 한 영어로 코드를 작성하는 것이 좋습니다 (적어도 코드 샘플을 온라인으로 게시 할 때). 그렇게하면 코드가 더 많은 사람들에게 이해 될 것입니다.

+0

감사합니다. 영어로 번역 됨 ... – FallenAngel

0

귀하의 방법 bakiyeSor는 값을 반환하지 않습니다. return가 없습니다. 나는 CPU와 네트워크 장치 아이디의 일부 제어 기능이있는 API를 제공,에서 가져온 DLL을 사용했다

+0

편집되었습니다 –

+0

죄송합니다, 고정 ... 내 코드가 훨씬 더 길어서 문제가있는 부분입니다 ... – FallenAngel

관련 문제