2011-11-19 3 views
0

현재 WCF 게시 구독 서비스를 개발 중입니다. 게시자는 asp.net이고 구독자는 winform 앱이됩니다. 내 asp.net에 대한 다음 코드를 읽고 내 서비스에 연결하는 방법을 읽고 어떻게 수행합니까?내 asp.net에 대해 다음 코드를 어떻게 변환합니까?

class Program : IPostingContractCallback 
{ 
    static void Main(string[] args) 
    { 
     InstanceContext site = new InstanceContext(new Program()); 
     PostingContractClient client = new PostingContractClient(site); 

     client.PublishPost("testing"); 

     Console.WriteLine(); 
     Console.WriteLine("Press ENTER to shut down data source"); 
     Console.ReadLine(); 

     //Closing the client gracefully closes the connection and cleans up resources 
     client.Close(); 
    } 

    public void PostReceived(string postSampleData) 
    { 
     Console.WriteLine("PostChange(item {0})",postSampleData); 
    } 
+0

W3C에서 게시/구독 잘 지원되지 않습니다. 정확히 무엇을하고 싶니? –

+0

위 코드는 실행될 때 서비스에 게시하는 게시자 역할을하는 C# 응용 프로그램을위한 코드입니다. 내가 할 일은 내 출판사 asp.net 웹 페이지 asp.net 코드로 변환하는 것입니다. – Thomas

답변

1

다음 명령을

svcutil.exe에/언어를 사용하여 서비스 코드를 번역 관리 : VB /out:generatedProxy.cs /config:app.config http://localhost:8888/PostingContract

그리고 다음을 추가 코드 내 asp.net

Dim site As InstanceContext = New InstanceContext(New json2()) 
Dim client As PostingContractClient = New PostingContractClient(site) 

client.PublishPost(alertId:="") 
client.Close() 

Public Sub PostReceived(alertId As String) Implements IPostingContractCallback.PostReceived 

    Console.WriteLine("PostChange(item {0})", alertId) 

End Sub 
+0

은 WCF 서비스에 대한 프록시를 만들고 서비스 코드를 '변환'하지 않습니다. 어쩌면 의미론은 중요하다고 생각합니다. – kenny

+0

죄송합니다. 에 코드를 추가하는 것을 잊어 버렸습니다. – Thomas

0

제대로 이해했다면 asp.net 페이지가 게시자의 역할을하도록 할 수 있습니다.

나는 이것이 효과가 있다고 생각하지 않습니다. 문제는 asp.net 페이지가 매우 짧은 시간 동안 만 살아 있다는 것입니다. 코드를 일시 중지 한 것처럼 일시 중지하면 시간 초과가 발생하고 페이지가 작동을 멈 춥니 다.

그러나 게시자가 서버 측에서 실행되도록하려면 Windows 서비스에서 호스팅해야합니다.

관련 문제