我有一个需要公开API的.NET Windows服务.我现在正在开发过程中使用远程处理.
现在我的所有方法都接受并返回XML.我已经为所需对象提供了大量自定义序列化和反序列化代码.
这些对象都不是很大.
我想轻松地将我的API用于多种语言.
我考虑过在服务中托管一个Web服务,还只考虑普通的套接字.
公开此API的最佳方式是什么?
我正在计划一个更大的项目,所以我正在考虑一些技术选择.
该项目将使用3层架构设计.表示层将是ASP.NET,但它可能是其他一些技术.现在这没关系.
我的问题是:
我会感激任何提示
我需要构建一个可以双向通信的网站和应用程序。我将使用 ASP.NET 构建网站,并使用 C# 构建应用程序。
我将自己托管该网站,它将与应用程序在同一台计算机上运行。
我不知道在两者之间发送数据的最佳技术是什么。C# 应用程序需要一直运行。我应该构建一个 C# 控制台应用程序,然后隐藏控制台窗口吗?或者其他类型的应用程序更合适?
我一直在浏览 Web,发现了几种不同的建议,包括套接字、消息队列、远程处理和 WCF。一些指示将不胜感激 - 我对这一切都很陌生。
谢谢。
编辑将使用请求-响应模式,Web 应用程序始终是实例化请求的应用程序。这就是我所说的双向通信。
Web应用程序将向后端应用程序发送请求,后端应用程序将执行一些处理,然后将响应发送回Web应用程序。JSON 将用于来回发送数据。
我将使用 SQL Server Express 2008 R2,后端应用程序将是唯一与数据库通信的应用程序。Web 应用程序主要关注表示层。
后端应用程序将具有内存中的对象,这些对象在应用程序启动时实例化(从数据库加载数据),然后持久化到数据库(在执行期间和关闭之前)。C# 控制台应用程序适合这种事情吗?
当我做
RemotingServices.Marshal(foo, uri);
Run Code Online (Sandbox Code Playgroud)
客户端连接,一切正常.当我等待几分钟然后尝试连接客户端时,客户端抛出一个RemotingException:对象'{service of service}'已断开连接或在服务器上不存在.
这里发生了什么?有某种超时吗?
我在不同的计算机上有两个应用程序,而不是通过Remoting Channel相互连接.我想从不同网络(通过Internet)的客户端控制服务器.
remoting ×5
.net ×4
c# ×4
wcf ×2
api ×1
architecture ×1
asp.net ×1
marshalling ×1
nat ×1
sockets ×1
web-services ×1