【问题标题】:One Solution, two WebForm Projects - accessing a page in one from the other. VS2019一个解决方案,两个 WebForm 项目 - 从另一个访问一个页面。 VS2019
【发布时间】:2020-11-18 07:28:27
【问题描述】:

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

(1) 在 Visual Studio 2019 中,我有一个解决方案,其中包含两个项目,都是 WebForms。

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

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

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

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

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

(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 和 StackOverflow,但我发现的少数答案似乎与 MVC 相关。 This post 似乎通过向 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 上使用我怀疑我无法访问的虚拟文件夹。

很奇怪,因为我原以为这对于开发人员来说是很常见的做法。尽管如此,任何人的想法都会受到欢迎。

提前致谢,

【问题讨论】:

    标签: asp.net architecture webforms project solution


    【解决方案1】:

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

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

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

    【讨论】:

    • 您好 NicoTek,非常感谢您的想法。我想你是正确的。唯一的缺点是,在我的日志记录项目中,我设想了一个用于过滤异常的网页,并且您不能在类库中拥有网页(除非您知道不同?)。所以我只需要将该页面复制到所有未来的项目中......如果出于某种原因我需要更改其结构,我将不得不在许多不同的项目中更改它。可惜,你来了。再次感谢:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-30
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 2021-08-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多