我经常在 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
资源到前端网站,不用担心网站是如何托管的。
重要的一件事是我可以分别构建和维护项目,因为某些管理从一个客户端到另一个客户端将具有不同的功能
如果你能为这一切想出一个更好的结构,我很乐意倾听!:)
感谢您抽出宝贵时间查看此内容。