2013-07-11 10 views
2

몇 달 전에 ColdFusion 웹 서비스에 액세스하는 VB.Net에서 응용 프로그램을 작성했습니다. 클라우드의 CF 서버에있는 웹 서비스는 내 VB.Net 프로젝트에서 웹 참조로 설정되었습니다. Windows Server 2003을 실행하는 시스템에서 작성된 응용 프로그램을 실행할 때이 웹 서비스를 사용하는 데 문제가 없습니다.VB.NET에서 웹 서비스에 액세스 할 수 없습니다.

오늘로 금일 전달하십시오. 인접한 Win7 컴퓨터에서 동일한 네트워크/연결을 사용하여이 웹 서비스를 사용하려고 시도하고 VS2010 IDE 또는 빌드 된 응용 프로그램을 실행할 때마다 다음과 같은 오류가 발생합니다. "기본 연결이 닫혔습니다 : 예기치 않게 연결이 닫혔습니다. "

웹 서비스 나 VB.Net 코드를 변경하지 않았습니다.

이러한 오류의 원인은 무엇입니까?

Public Function ConnectedToTheInternet() As Boolean 
    Dim myservice = New TestService.testservicecfc() 

    Try 
     myservice.echoString("hello") 
     ConnectedToTheInternet = True 
    Catch ex As Exception 
     Windows.Forms.MessageBox.Show(ex.Message) 
     ConnectedToTheInternet = False 
    End Try 

End Function 

여기 내 웹 서비스 코드 : 여기

서비스를 소비하는 내 VB.NET 코드입니다 내 Windows 방화벽을 해제 시도

<cfcomponent output="false"> 
    <cffunction name="echoString" returnType="string" output="no" access="remote"> 
     <cfargument name="input" type="string"> 
     <cfreturn #arguments.input#> 
    </cffunction> 
</cfcomponenet> 

, 그러나 이것은 더 있었다 효과.

+0

이동 된 경우

코드의 마지막 비트는 웹 서비스를 호출하는 것입니다 그것을 사용하는 각각의 메소드에서, 나는 하나의 글로벌 웹 서비스 변수를 생성했다. 이것은 내 애플리케이션이 처음 실행될 때 인스턴스화된다. 이것은 문제를 해결 한 것 같습니다. 다른 제안 사항은 언제나 환영합니다. – Richard

+0

확인. 나는 거짓말했다. 여전히 작동하지 않습니다. – Richard

답변

0

그러나 실제로는 코드 권한을 추가하고 역할 기반 보안을 살펴보고 응용 프로그램에 서버에 액세스하는 코드의 모든 사용 권한이 있는지 확인해야합니다.

GenericIdentityGenericPricipal 키워드를 사용하십시오. 여기

은 관리자로 당신을 볼 수 있도록 당신이 설정할 수 있습니다

Imports System 
Imports System.Security.Principal 
Imports System.Threading 

Public Shared Sub Main() 
'Hard coded username 
Dim strUsername As String = "admin" 

'Create GenericIdentity 
Dim gidMyID as New GenericIdentity(strUsername) 
Dim strMyRole As String = "Some Role" 

'Create GenericPrincipal 
Dim gplMyPrincipal As New GenericPrincipal(MyIdentity, MyRoles) 

'Store the principal for later use 
Thread.CurrentPrincipal = gplMyPrincapal 

End Sub 

일부 예제 코드는 다음 정의한 역할은 웹 서비스에 액세스하도록 허용하는 서버에게있다 할 필요 . 당신이 도움이 될 경우

if(String.Compare(gplMyPrincapal, "DOMAIN\Admin", True) = 0) Then 
    'enter code here 
Else 
    Msgbox("Cannot Connect", "Error") 
End If 

확실하지 인증 그러나 그것의 가치가 대신 선언 및 웹 서비스 변수를 인스턴스의

관련 문제