如何使用WSP将Asp.net Web应用程序部署到Sharepoint 2010网站?

8
假设我创建了一个自定义网络应用程序,包括:
- 几个程序集 DLL:网络应用程序、业务逻辑、数据服务 - 多个 aspx 页面和使用它们的 ascx 自定义控件 - 自定义配置部分 - 自定义 HTTP 模块
更或者少或者就是一些常规的东西。
我想将其部署到特定的 SharePoint 网站下的某个子文件夹。因此,如果我通过 http://myserver:90/ 访问我的 SharePoint 网站(因为我没有使用 sites/some_site),我希望我的应用程序可以在 http://myserver:90/webapp 下可用。
我可以手动向 IIS 中的 SharePoint 站点添加虚拟文件夹(不是应用程序,因为我需要访问某些 SharePoint 站点的数据),并手动编辑站点的 web.config 文件以注册我的 HTTP 模块并添加我的自定义配置部分,还可以将 DLL 放入 GAC 或将它们放入 _app_bin(这样我就不会遇到 CAS 的问题)。但我认为这样做不好,因为这个 Web 应用程序可能会在不允许或不能这样做的环境中部署。
所以我想我可以使用 Visual Studio 2010 构建一个 WSP 并以这种方式部署它。但我没有足够的经验来做到这一点。
我创建了一个新的 SharePoint 2010 项目。是否有一种方法可以一次添加所有非可执行应用程序文件(aspx、ascx)?我看到了 WSP 包的 高级 选项卡,可以将我的 DLL 添加到 bin 文件夹或 GAC 中。我不知道是否还需要添加任何安全控件并注册某些类?
因此,我想我需要一些相当详细和说明性的指导。
1个回答

4
唯一真正的方法是使用“layouts”文件夹通过wsp部署应用程序。这将允许您存储任何通常与Web应用程序一起部署的文件。
但是,有几个问题。您的应用程序的URL将为http://SharePoint/somesite/_layouts/yourapp
这是好事也是坏事。您的URL将很丑,但它们将在每个SharePoint站点下工作。如果您的应用程序依赖于SharePoint上下文来运行,则该上下文将基于请求的URL自动可用。
要在SharePoint项目下添加“layouts”文件夹,请右键单击项目并添加映射到“layouts”的文件夹。我还建议在“layouts”文件夹下添加子文件夹以存储应用程序文件,以便您的应用程序文件不会与默认文件直接冲突。
对于http模块或任何web.config修改,您可以使用“spwebconfigmodification”类。
这是一个步骤说明:http://sharepointsolutions.blogspot.com/2006/12/using-spwebconfigmodificat_116736917110571614.html

尽管这不是我想要的答案,但它提供了足够的信息让我知道这是做不到的。至少不是我所追求的那种程度。再次感谢(在这么长时间之后)。 - Robert Koritnik

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接