ASP.NET 中的哪些设置决定了网站将在何处(如在哪个或哪些目录中)查找其代码隐藏文件?
我有两个版本的 asp.net c# 网站,Live 和 Dev。
实时站点:www.example.com,页面和代码位于 c:\dev\websites\examplecom_new
开发站点:d3.example.com,页面和代码位于 c:\dev\websites\examplecom-d2
为什么实时站点的目录以 _new 结尾以及为什么开发站点的主机名是 d3 并且目录名是 -d2 是有历史原因的,但它们是有效的,直到现在我们都没有问题,在 d3 上开发东西用于后续发布。
我最近刷新了开发站点,使其成为实时站点的精确副本(我通常在开始新一轮工作之前这样做),并开始了一些开发工作。但是,当我尝试通过该网站运行代码时,即使浏览器显示的是 Dev URL d3.example.com,错误消息也引用了实时网站的 Web 目录中的代码文件,c:\dev\examplecom_new,不是开发版本 c:\dev\examplecom-d2。
我已经详细检查了代码,以确保没有对 www 站点或实时站点目录路径的硬编码引用,据我所知没有。所有情况下的代码文件在 .aspx 文件中都称为本地链接,例如:
<%@ Page Language="C#" MasterPageFile="~/ExampleCom.master" AutoEventWireup="true"
CodeFile="Checkout.aspx.cs" Inherits="Checkout" Title="Untitled Page" %>
是的,我知道“无标题页面”并不是世界上最有用的标题。 :)
我浏览了 web.config,查看了 app_code\general.cs,并检查了 IIS 中 Properties 元素上的所有选项卡,但我找不到任何可以告诉网站使用来自实时目录而不是开发目录的 .cs 文件。
我尝试恢复开发站点的先前(刷新前)版本(我总是在替换之前备份它们,以防万一),以防万一发生了我不知道的配置更改,但是旧的version 表现出完全相同的问题,Checkout 页面从 live 而不是 dev 调用代码,即使它的 URL 在浏览器中显示了 dev 版本。
不用说这是一个阻碍,发生的错误似乎是由于实时和开发之间的 session 不匹配,但我不知道为什么开发站点从实时站点而不是从实时站点调用代码代码在自己的目录中。任何指向可能错误的指针将不胜感激。我已经尝试使用谷歌搜索“从错误目录调用的文件背后的 asp.net 代码”和相关搜索,并在 Stack Overflow 中搜索相同类型的内容,但没有看到任何相关内容。我们不使用预编译的二进制文件,只使用标准的 .aspx 页面和 .aspx.cs C# 代码文件。
一开始我以为一定有一个硬编码的重定向把事情从 dev 踢到 live,但是我看不到任何痕迹,浏览器地址栏仍然显示 d3.example.com/Checkout.aspx 当我期望重定向能够将其更改为 www 版本。
网络服务器是 IIS 6,我们运行的是 ASP 2。
最佳答案
从命令行运行“iisreset”命令,然后清除临时文件夹。之后将重新编译所有应用程序。
关于c# - 网站使用来自错误目录的代码隐藏文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15932586/