Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 站点使用错误目录中的代码隐藏文件?_C#_Asp.net_Iis 6_Code Behind - Fatal编程技术网

C# 站点使用错误目录中的代码隐藏文件?

C# 站点使用错误目录中的代码隐藏文件?,c#,asp.net,iis-6,code-behind,C#,Asp.net,Iis 6,Code Behind,ASP.NET中的哪些设置决定了网站将在何处(如在哪个目录中)查找其代码隐藏文件 我有两个版本的asp.net c#网站,Live和Dev Live站点:www.example.com,页面和代码为c:\dev\websites\examplecom\u new Dev站点:d3.example.com,页面和代码位于c:\Dev\websites\examplecom-d2中 为什么live站点的目录以_new结尾,为什么开发者站点的主机名是d3,目录名是-d2,这些都是历史原因,但它们都是有

ASP.NET中的哪些设置决定了网站将在何处(如在哪个目录中)查找其代码隐藏文件

我有两个版本的asp.net c#网站,Live和Dev

Live站点:www.example.com,页面和代码为c:\dev\websites\examplecom\u new

Dev站点:d3.example.com,页面和代码位于c:\Dev\websites\examplecom-d2中

为什么live站点的目录以_new结尾,为什么开发者站点的主机名是d3,目录名是-d2,这些都是历史原因,但它们都是有效的,到目前为止,我们还没有遇到任何问题,在d3上开发一些东西,以便后续发布live

我最近刷新了dev站点,使之成为live站点的精确副本(我通常在开始新一轮工作之前这样做),并开始了一些开发工作。但是,当我试图通过网站运行代码时,即使浏览器显示的是Dev URL d3.example.com,错误消息引用的代码文件来自live网站的web目录c:\Dev\examplecom\u new,而不是开发版本c:\Dev\examplecom-d2

我已经详细阅读了代码,以确保没有对www站点或live站点目录路径的硬编码引用,而且据我所知,没有硬编码引用。在所有情况下,.aspx文件都将代码文件称为本地链接,例如:

<%@ Page Language="C#" MasterPageFile="~/ExampleCom.master" AutoEventWireup="true"
    CodeFile="Checkout.aspx.cs" Inherits="Checkout" Title="Untitled Page" %>

是的,我知道“无标题页面”不是世界上最有用的标题

我浏览了web.config,查看了app\u code\general.cs,并检查了IIS中Properties元素的所有选项卡,但是我找不到任何可以告诉站点使用live目录中的.cs文件而不是dev目录中的文件的内容

我尝试恢复开发站点的早期(预刷新)版本(我总是在替换之前备份它们,以防万一),以防万一有配置更改我不知道,但旧版本显示出完全相同的问题,签出页面从live调用代码,而不是从Dev调用代码,即使它的URL在浏览器中显示dev verson

不用说,这有点像一个showtupper,发生的错误似乎是由于live和dev之间的会话不匹配造成的,但我不知道为什么dev站点从live站点调用代码,而不是调用自己目录中的代码。任何可能出错的提示都将受到欢迎。我在谷歌上搜索了“从错误目录调用的asp.net代码隐藏文件”和相关搜索,并在堆栈溢出中搜索了相同类型的内容,但没有看到任何相关内容。我们不使用预编译的二进制文件,只使用标准的.aspx页面和.aspx.csc#代码文件

起初,我假设一定有一个硬编码的重定向将东西从dev转移到live,但是我看不到任何重定向的痕迹,浏览器地址栏仍然显示d3.example.com/Checkout.aspx,而我原本希望重定向到live,将其更改为www版本


Web服务器是IIS 6,我们正在运行ASP 2。

从命令行运行“iisreset”命令,然后清除临时文件夹。之后将重新编译所有应用程序。

这是web应用程序还是网站类型的项目?如果它是一个网站,如果您修改网站中的某些文件(从而使其重建),会发生什么情况?你还经历过这种行为吗?您还可以在IIS中显示网站设置的屏幕截图吗?请尝试清理“临时ASP.NET文件”文件夹。这是一个网站,包含很多aspx及其配套的aspx.cs页面。这是一个出售电话号码的电子商务网站。我刚刚尝试对代码隐藏和.aspx页面进行了一些小的编辑,但这两个页面都没有显示在浏览器的页面中。它几乎就像是从错误的目录中读取此页面(Checkout.aspx/Checkout.aspx.cs)。但是如果我删除了整个目录内容,那么我会得到预期的“目录列表被拒绝”。@kenankocarkek:是否像删除所有内容一样进行清理?看看那里,我们的几个网站都有目录,但这一个没有。删除这些内容会带来什么后果?这些网站会在很长时间内不可用吗?或者,当有人试图浏览其中一个网站时,会出现通常的“it's changed”(它已更改)编译延迟吗?更新:我只是再次尝试删除整个目录内容。奇怪的是,我仍然可以在浏览器中看到文件,即使在ctrl刷新之后。显然,它确实是在从它声称的地方以外的地方阅读它们。我也尝试过在不同的浏览器中访问该站点(删除后),这也显示了不应该存在的内容,而且似乎来自于实时站点。将备份临时文件位置并将其删除,看看这是否有任何区别。或者尝试在dev应用程序的web.config文件中添加一个空行。它强制重新编译codebehind。完全停止IIS,完全清除临时文件文件夹,然后重新启动。这解决了大多数“benn删除的东西仍然出现”的问题,但没有解决结帐页面的问题。我意识到一件事——问题只发生在HTTPS页面上,http页面的行为完全符合预期。PS:Ta对于web.config中的info re空行,请记住,handy.oh god:)为开发应用程序的ssl页面设置8443(或任何其他)端口,并使用8443端口访问它们。或者使用默认ssl(443)端口为dev应用程序创建一个新的ip是的,刚刚意识到。它切换到https,通过端口和IP而不是主机名进行连接,因此即使浏览器地址栏中显示的主机名是开发人员的主机名,也可以获取实时站点文件。将在早上重新配置它。谢谢你的帮助,我快疯了!干杯