ASP.NET中的哪些设置决定了网站查找代码隐藏文件的位置(如在哪个Directorie中)?
我有两个版本的asp.net c#网站,Live和Dev。
直播网站: www.example.com ,网页和代码位于c:\ dev \ websites \ examplecom_new
开发网站: d3.example.com ,网页和代码位于c:\ dev \ websites \ examplecom-d2
为什么现场网站的目录以_new结束,以及为什么dev网站的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" %>
是的,我知道“Untitled Page”并不是世界上最有用的标题。 :)
我已经浏览了web.config,看了一下app_code \ general.cs,并检查了IIS中Properties元素的所有选项卡,但我找不到任何可能告诉网站使用的内容来自live dir的.cs文件而不是开发者。
我尝试恢复Dev网站的上一个(预刷新版)版本(我总是在更换前备份它们,以防万一),以防万一有配置更改我不知道,但旧的版本显示完全相同的问题,Checkout页面调用live而不是dev的代码,即使它的URL在浏览器中显示dev verson。
不用说这是一个showstopper,发生的错误似乎是由于live和dev之间的会话不匹配,但我不知道为什么dev站点从实际站点调用代码而不是代码在自己的目录中。任何可能错误的指针都将受到赞赏。我已经尝试了谷歌搜索“从错误的目录调用的文件背后的asp.net代码”和相关的搜索,并搜索相同类型的东西,但没有看到任何相关的Stack Overflow。我们没有使用预编译的二进制文件,只使用标准的.aspx页面和.aspx.cs C#代码文件。
起初我假设必须有一个硬编码重定向从dev开始实现,但是我看不到任何一个的痕迹,浏览器地址栏仍然显示d3.example.com/Checkout.aspx当我我希望重定向可以将其更改为www版本。
网络服务器是IIS 6,我们正在运行ASP 2.
答案 0 :(得分:1)
从命令行运行“iisreset”命令,然后清除临时文件夹。之后将重新编译所有应用程序。