2010-09-29 37 views
5

Tôi vừa có một máy tính để bàn mới với Windows 7 Pro làm hệ điều hành. Tôi đã cài đặt Visual Studio 2008 vào máy tính mới này và cố gắng mở một giải pháp ASP.NET 3.5 đã tồn tại trước đó hoàn toàn tốt trên máy tính trước của tôi (máy tính trước đây đã sử dụng hệ điều hành Windows XP, IIS6 và trình duyệt IE7). Tuy nhiên, trong Windows7/IE8, tôi nhận được lỗi sau:Lỗi: "Tệp '/MasterPages/MainMaster.master' không tồn tại." (Có, tệp này không tồn tại!)

Server Error in '/' Application.


Parser Error Description: An error occurred during the parsing of a resource required to service this request. Please review the following specific parse error details and modify your source file appropriately.

Parser Error Message: The file '/MasterPages/MainMaster.master' does not exist.

Source Error:

Line 1: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="default.aspx.cs" Inherits="_Default" MasterPageFile="~/MasterPages/MainMaster.master"%> Line 2:
Line 3: <%@ Register TagPrefix="SBLContent" TagName="SBLContentBlock" Src="usercontrols/content.ascx"%>

Source File: /SBLWebSite/default.aspx Line: 1


Version Information: Microsoft .NET Framework Version:2.0.50727.4952; ASP.NET Version:2.0.50727.4927

hãy tin tôi khi tôi nói với bạn rằng các tập tin tập tin ‘/MasterPages/MainMaster.master’ không, trên thực tế, tồn tại.

Ngoài ra, vị trí của tệp này được tham chiếu chính xác trong mã (như được chỉ ra trong Dòng 1 ở trên) và như tôi đã nói, trình duyệt đã hiển thị đúng cách trong máy tính trước của tôi. Cũng có thể hữu ích khi lưu ý rằng tôi đã cố gắng điều hướng đến các trang khác trong trang web này và trình duyệt này hiển thị cùng một thông báo cho bất kỳ và tất cả trang chính nằm trong thư mục MasterPages của tôi.

Tóm lại, vì lý do nào đó trình duyệt không thể thấy bất kỳ trang nào trong thư mục MasterPages. Bất cứ ai có thể cho tôi biết lý do tại sao tôi nhận được thông báo lỗi này khi thư mục và tập tin là chính xác nơi default.aspx nói nó là?

Cảm ơn trước!

Trả lời

8

Tôi đánh giá cao phản hồi của bạn.

Tuy nhiên, vấn đề này hóa ra lại là vấn đề IIS7. Các thông báo lỗi tôi mô tả phát sinh ra khỏi sự phân biệt được thực hiện trong IIS7 giữa một "thư mục ảo" và một "ứng dụng" (Tôi không biết nếu một sự phân biệt tồn tại trong IIS6). Để khắc phục lỗi này, tôi đã mở IIS7, nhấp chuột phải vào thư mục thư mục ảo cho trang web này và chọn "Chuyển đổi sang ứng dụng". Sau đó tôi làm mới trình duyệt và lỗi đã biến mất.

Sigh.

+1

Bạn nên đăng bài này như một bình luận cho câu trả lời của Ben thay :) Đáp nói chung là .. cũng .. câu trả lời :) – Marko

+0

xin vui lòng cung cấp thêm thông tin về giải pháp này, tôi có cùng một vấn đề nhưng không theo giải pháp của bạn – Guy

+0

đó là lừa !, nhờ "chuyển đổi sang Ứng dụng" đặt đường dẫn gốc mới mặc định thành URL phân đoạn bổ sung nên bây giờ localhost/myproject là bản gốc mới pat h đến thư mục ảo mới của tôi bây giờ hoạt động tốt !, cảm ơn một lần nữa. – dennisbot

1

Hai điều cần kiểm tra:

  1. Khi sử dụng "~" trong một đường dẫn tập tin, hãy chắc chắn rằng việc triển khai ứng dụng hiện tin thư mục gốc là giống như nó đã được trước đó. (Tôi đã chạy vào điều này đôi khi di chuyển một ứng dụng từ máy chủ phát triển VS và IIS.)

  2. Đảm bảo rằng tài khoản người dùng mà máy chủ đang chạy có quyền truy cập thư mục đó. Vì bạn vừa chuyển mã từ máy tính khác và có thể một số thiết bị lưu trữ trung gian, các quyền bảo mật có thể không đúng.

0

Thay vì "~" tôi đã có thể chỉ cần thay đổi thư mục thành người tương đối ".." Vì vậy, những gì tôi ban đầu đã cho tôi vấn đề là: "~/MasterPage/TheMainMasterPage.master" và điều này khiến tôi nhận được thông báo lỗi tương tự. Thay đổi nó thành "../MasterPage/TheMainMasterPage.master" đã sửa mọi thứ cho tôi.

0

Gần đây tôi đã phải di chuyển các trang web của mình từ một máy chủ (32 bit) sang một máy chủ khác (64 bit). Trên máy chủ mới, tôi gặp phải lỗi không tìm thấy tệp "Thông báo lỗi phân tích cú pháp: Tệp '~/Master.thạc sĩ' không tồn tại"

NB: một số ứng dụng của tôi được xây dựng cho x86, bạn vẫn cần phải chuyển đổi trang web của bạn đến một ứng dụng :-)

Giải pháp: Trong IIS8, bấm Application Pool -> chọn hồ bơi ứng dụng, ví dụ: DefaultAppPool -> nhấp vào 'Cài đặt nâng cao' -> Trong phần 'Chung', đặt 'Bật ứng dụng 32-bit' thành 'Đúng' -> Nhấp vào OK

Làm mới trang web/webservice của bạn và thực hiện lừa

0

enter image description here

lỗi nói trên mẫu web như chỉnh

<%@ Page Title="" Language="vb" AutoEventWireup="false" MasterPageFile="~/Site1.Master" CodeBehind="add_drivers.aspx.vb" Inherits="au_transport.WebForm1" %>

này

<%@ Page Title="" Language="vb" AutoEventWireup="false" MasterPageFile="Site1.Master" CodeBehind="add_drivers.aspx.vb" Inherits="au_transport.WebForm1" %>

Các vấn đề liên quan