一个解决方案,两个 WebForm 项目 - 从另一个访问一个页面。 VS2019

One Solution, two WebForm Projects - accessing a page in one from the other. VS2019

我认为这个问题没有答案,但我经常错,所以这次我也祈祷。

(1) 在 Visual Studio 2019 年,我有一个由两个项目组成的解决方案,都是 WebForms。

(2.1) Project1 存储书籍信息(但这并不真正相关)。

(2.2) Project2 将由 Project1 引起的任何异常记录到数据库中。它有一个 logFilter.aspx 页面,用于查看这些异常。

(3) 我在 Project1 中添加了对 Project2 的引用,但这与共享代码无关,因此这也不是真正的问题。

(4) 我的问题是,当我在浏览器中导航到 Project1 时,有什么方法可以访问 Project2 中的 logFilter.aspx 页面?

(5) 例如,现在我必须更改解决方案的属性以使两个项目都成为“启动项目”。然后我可以分别访问它们 - 在单独的浏览器中 windows - 像这样:

(5.1) https://localhost:44340/bookPage.aspx (Project1)

(5.2) https://localhost:44389/logFilter.aspx (Project2)

(6) 在开发期间在我的本地机器上运行良好。但是,一旦我在 Internet 上将大量部署到我的网络托管公司的 IIS(例如 www.Project1.com),我真的不知道它是如何工作的。

(7) 我可以将 logFilter.aspx 页面添加到 Project1。但是我会在我未来的所有项目中点缀它的不同版本。

(8) 我搜索了 Microsoft Docs 和 Whosebug,但我发现的几个答案似乎与 MVC 相关。 似乎通过向 web.config 添加密钥来提供答案,如下所示:

   <add key="WebsiteURL" value="http://localhost:2030/" />

   and then using:

   Response.Redirect(ConfigurationManager.AppSettings["WebsiteURL"] + "SRF-GeneralInfo.aspx");

我不是专家,但我假设一旦我将它部署到 Internet 上的网络托管公司的网络服务器上,我就不会拥有该端口信息。

The answer here 建议您要么将一个项目作为另一个项目的子项目,要么在 IIS 上使用我怀疑我是否有权访问的虚拟文件夹。

奇怪,我原以为这是开发人员想要做的很常见的做法。不过,欢迎任何人提出任何想法。

提前致谢,

一个可能效果更好的设置是您有一个包含两个项目的解决方案。 Project1 是 webapp,但 PROJECT2 是一个库。

现在,当您在 project1 上遇到异常时,您可以调用 class/function 您在 project2 中可能需要的内容并记录信息。

未来的项目(3、4 等)仍然可以引用 project2 进行日志记录。