【问题标题】:Send data from console application to asp.net website将数据从控制台应用程序发送到 asp.net 网站
【发布时间】:2015-08-28 21:25:12
【问题描述】:

我对 C# 和 .NET 还很陌生,我已经开始研究一个小型本地应用程序。

在一个 Visual Studio 解决方案中,我应该创建一个网站,该网站可以检索从控制台应用程序写入的消息并将它们显示/存储在数据库中。

我主要想知道是否有任何“首选”方式。

当时,我想出了两种可行的方法。

第一种方法 控制台应用程序 CA 参考网站 MVC 应用程序 WA,它有一个名为 Message 的模型类。 (这只是我想传递的消息)

当用户在命令行中输入文本并按 Enter 键时,会使用该文本创建一条新消息。从那里,我想使用<% ViewData["Variable"]%> 来传递信息。这是一个好方法吗?

第二种方法我还没有测试过: 我最初的想法是创建一个 http 连接并向网站发送一个 POST 请求。我简要阅读了有关创建可以处理此问题的 Web API 应用程序的信息。

是否有任何其他“标准”或首选方法来解决任务?

我正在寻找一种有效的方法以及可测试性。

/如果有人在这里结束,你可以看看这个结果/ https://github.com/egenvall/ConsoleToBrowser

【问题讨论】:

  • 模型对象设置好后怎么办?我不确定我是否理解这样做的目的。是否就像两个应用程序,一个可以创建,另一个显示创建的内容?
  • Web API 将是更好的选择。使用 Web API 公开可以接收消息并将它们保存到数据库中的方法。将对象从控制台传递到 Web 或在两个独立的应用程序之间传递不是一个好主意。
  • 我想使用什么并不重要。如果我理解正确,您将通过 http 向您发送消息。因此,您将信息存储在 ViewData 或 get 请求的参数中的位置并不重要。

标签: c# asp.net .net asp.net-mvc http


【解决方案1】:

我建议你通过 SignalR

http://www.asp.net/signalr/overview/getting-started/tutorial-getting-started-with-signalr

  1. 您必须构建一个服务,该服务应该公开 控制台

  2. 从您的 Web 应用程序使用 SignalR 调用服务。这个 将在屏幕上显示从服务发送的数据 必须刷新用户屏幕。

    当您调用该服务时,它应该将数据绑定到屏幕并将其保存到数据库中。

【讨论】:

  • 这看起来确实很有趣,我会研究一下。谢谢
  • 好吧,我现在可以使用它了。从控制台调用集线器类。集线器向所有客户端广播以进行更新,并调用我的数据库帮助器类向数据库添加一个条目。但是,我使用 Gridview 来显示数据库中的数据(这需要刷新页面,而这正是 SignalR 的重点)我正在考虑覆盖 Hub 类中的 OnConnected,并将数据库中的所有条目附加到用户连接时的页面,然后使用原始 SignalR 广播不刷新任何想法?
【解决方案2】:

您可以使用 GET 方法从控制台发送数据, 在您的网络服务器上打开端口 80 并发送:

GET /page.aspx?id=12&data=test HTTP/1.1<line feed>
Host: your.domain.com<line feed>
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)<line feed>
<line feed>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多