我目前正在开发WCF发布订阅服务。发布者将是一个asp.net,订阅者将是一个winform应用程序。如何为我的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 :(得分:1)
使用以下命令管理以转换服务代码
svcutil.exe / language: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
答案 1 :(得分:0)
如果我理解正确,您希望您的asp.net页面充当发布商。
我不认为这会奏效。问题是asp.net页面只能存在很短的时间。如果您尝试暂停代码,就会暂停代码,您将暂停,页面将停止工作。
但是,如果你想要做的是让发布者在服务器端运行,你应该在Windows服务中托管它。