可以在 Visual Studio 数据库项目中使用 microsoft.web.services3 吗?
Posted
技术标签:
【中文标题】可以在 Visual Studio 数据库项目中使用 microsoft.web.services3 吗?【英文标题】:Its possible to use a microsoft.web.services3 in visual studio database project? 【发布时间】:2017-04-03 07:50:57 【问题描述】:我已经完成了一个从 wsdl 类方法获取信息的 Windows 服务。一位同事建议我使用程序集在 sqlserver 数据库中运行作业。我想这是不可能的,但我不知道它是否可以做到。
我使用的 wsdl 是通过 Microsoft.web.services3 完成的。 Windows 服务项目有一个配置文件,其中包含必要的部分:
<configSections>
<section name="microsoft.web.services3" type="Microsoft.Web.Services3.Configuration.WebServicesConfiguration, Microsoft.Web.Services3, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</configSections>
我也有这个参考。
<microsoft.web.services3>
<tokenIssuer>
<ttlInSeconds value="900000" />
</tokenIssuer>
<security>
<defaultTtlInSeconds value="9000000" />
<timeToleranceInSeconds value="9000000" />
</security>
<web.services3>
我认为它不会起作用,但如果可能的话,我如何在数据库项目中执行此操作以在一个程序集中构建?
【问题讨论】:
【参考方案1】:是的,这是可能的,但这并不是真正的“好”。 您需要做的是创建一个 SQL Server CLR 程序集,您可以在其中使用 Web 服务逻辑(调用、处理等)。
查看 [https://msdn.microsoft.com/en-us/library/w2kae45k(v=vs.100).aspx] 了解如何操作
不利的是,您在 SQL Server 内存中运行此 CLR。如果您没有以正确的方式处理您的对象,您的 SQL Server 内存可能会被原本不应该存在的对象填满。
其他解决方案? 如果您需要数据库中的这些数据,您可能需要创建一个进程来调用 Web 服务并将数据存储在数据库中...
【讨论】:
我会尝试第一个解决方案,如果可行,我会通知您。谢谢 嗨,马克,我昨天做了,但遇到了一个新问题。当我的后端同事添加程序集时,其他 .dll 依赖项导致了很多错误。我可以在同一个 .dll 中获取所有依赖项吗?该项目有一些 .dll 依赖项,例如 epplus、razor、mvc、services3... 我不确定您为什么要在 Web 服务中使用所有这些前端程序集?确保 web 服务只做它应该做的事情。 Web 服务不应该与 razor/mvc 做任何事情。也许你想从前端调用服务,但它不应该被包括在内......回到你的对象/类的设计并确保一切都是非依赖的 我们有一些用于导出 excel 的常用库,还有一些 web utils...每个都有自己的引用。当我添加引用以使用序列化程序类时,它的项目具有这些引用,当我们尝试在后端添加 dll 时,它会崩溃,因为它无法获取这些引用。我不知道是否理解我,对不起我的英语不好。以上是关于可以在 Visual Studio 数据库项目中使用 microsoft.web.services3 吗?的主要内容,如果未能解决你的问题,请参考以下文章
是否可以在 Visual Studio 数据库项目中创建计算列?
发布 Visual Studio 数据库项目时可以忽略登录吗?