1

我经常在 asp.net webforms 中开发网站,其管理区域始终是应用程序根目录中的一个文件夹,该站点也位于该应用程序的根目录中。它将始终被编译成一个 dll,这意味着每一个小改动都需要完全重新构建解决方案——它只是不能很好地工作

这是一个相当长的问题,所以我的总结在底部,但我试图提供尽可能多的信息来提供帮助。

所以目前事情是这样设置的(你应该明白):

¬ Application Root  
  -  /MyAdminPanel
     - dashboard.aspx
  -  /website-css
     - site.css
  - index.aspx

但是,我最近开始使用 ASP.NET MVC 开发我们的网站并在解决方案中使用多个项目,例如:

¬ Solution
  - ClientName.Core
  - ClientName.Models
  - ClientName.CMS.Services
  - ClientName.CMS.Web
  - ClientName.Services
  - ClientName.Web

这些.Web项目是 CMS 和前端网站。

记住 99% 的时间都会有网站的管理区域,是否有更好的方法来构建我的 IIS 应用程序?

有人担心通过管理面板上传的资源需要通过前置网站访问,因此基本上是从子应用程序进入根目录。
这可能是通过这样做Server.MapPath(string path),因为这将转到根应用程序,但是根据设置的方式,可能无法保证根应用程序是文件需要去的地方(例如,如果前面和管理员都面向站点都在单独的虚拟应用程序中)。如果使用路径实际解析到子应用程序的位置,
我正在考虑这里的情况,这显然是不正确的。 HostingEnvironment.MapPath()/MyAdminPanel

总结
从本质上讲,长话短说,理想的情况是拥有一个如上所述的 VS 解决方案,以及一个类似结构的网站(尽管我更乐意将其更改为更好的东西),在那里我可以MapPath资源到前端网站,不用担心网站是如何托管的。

重要的一件事是我可以分别构建和维护项目,因为某些管理从一个客户端到另一个客户端将具有不同的功能

如果你能为这一切想出一个更好的结构,我很乐意倾听!:)

感谢您抽出宝贵时间查看此内容。

4

1 回答 1

1

解决方案非常简单——你真的只需要担心在这里映射 4 条路径——只需编写一些实用方法即可:

  • 从公共站点 http 根映射路径
  • 从公共站点文件系统根映射路径
  • 从管理站点 http 根映射路径
  • 从管理站点文件系统根映射路径

您可能希望使这些配置驱动,或者至少可以覆盖,因为这将在时间线中真正不允许“重新构建并将软件重新交付给客户端”的情况下在生产中迅速改变。

于 2013-03-06T13:41:19.630 回答