2010-04-14 31 views
11

Tôi đã cài đặt .net framework 4 trên cửa sổ của tôi 2003 doanh nghiệp x64, viết đơn giản asp.net 4.0 ứng dụng (default.aspx trang chỉ). Ứng dụng này hoạt động tuyệt vời nếu yêu cầu là default.aspx, không để các trang web gốc:ASP.net 4.0 default.aspx vấn đề trên IIS6

contoso.com/ - không hoạt động (Nhận lỗi 404)

contoso.com/default.aspx - công trình.

Default.aspx nằm trong danh sách tài liệu mặc định trong IIS. Xin vui lòng giúp đỡ.

+1

thêm nội dung và địa điểm? – Dimonina

Trả lời

0

Bạn có chắc chắn là mặc định.aspx không mặc định.asp trong danh sách tài liệu mặc định?

+0

hoàn toàn. Số đầu tiên trong danh sách – Dimonina

+0

Bạn đã tự thêm nó hay đã có nó chưa? Có cơ hội nào nó có thể là lỗi đánh máy không? –

+0

Nó đã có sẵn – Dimonina

4

Bạn sẽ tìm thấy câu trả lời ở đây http://johan.driessen.se/archive/2010/04/13/getting-an-asp.net-4-application-to-work-on-iis6.aspx

Net 4.0 không cho phép bản thân để chạy với IIS vì vậy bạn phải chạy lệnh (trong khi trong thư mục c: \ windows \ system32): cscript iisext.vbs/EnFile C: \ WINDOWS \ Microsoft.NET \ Framework \ v4.0.30319 \ aspnet_isapi.dll hoặc trong trường hợp của bạn vì bạn đang chạy x64

cscript iisext.vbs/EnFile C: \ WINDOWS \ Microsoft. NET \ Framework64 \ v4.0.30319 \ aspnet_isapi.dll

+0

.net 4.0 isapi mở rộng được kích hoạt. Trang web hoạt động tốt. Vẫn không có câu trả lời – Dimonina

+1

Chạy cscript iisext.vbs/EnFile C: \ WINDOWS \ Microsoft.NET \ Framework \ v4.0.30319 \ aspnet_isapi.dll và sau đó khởi động lại IIS –

+0

@Dimonina: Công việc này có được không ?? – Amitabh

20

Tìm thấy bản sửa lỗi ở dạng eemingly vị trí không liên quan - cố gắng thiết lập các "EnableExtensionlessUrls" khóa registry để 0:

ASP.NET 4 Breaking Changes -> ASP.NET 2.0 Applications Might Generate HttpException Errors that Reference eurl.axd:

Trong Windows registry, mở nút sau: HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ ASP.NET \ 4.0. 30319.0

  1. Tạo một giá trị DWORD mới có tên EnableExtensionlessUrls.
  2. Đặt EnableExtensionlessUrls thành 0. Điều này cho phép hành vi URL không mở rộng.
  3. Lưu giá trị đăng ký và đóng trình chỉnh sửa đăng ký.
  4. Chạy công cụ dòng lệnh iisreset, làm cho IIS đọc giá trị đăng ký mới.
+0

không hoạt động cho tôi :-( – Dimonina

+0

Điều này làm việc cho tôi! –

+0

Giống như một người đứng đầu cho bất kỳ ai gặp sự cố này, chúng tôi thấy rằng cài đặt hotfix cho sự cố này http : //stackoverflow.com/questions/3720720/how-serious-is-this-new-asp-net-security-vulnerability-and-how-can-i-workaround-i xóa khóa reg này, đã tạo lại cái này Sau khi chúng tôi áp dụng lại bản sửa lỗi này, tài liệu mặc định hoạt động chính xác trở lại –

1

Tôi không có đủ điểm để nhận xét, nhưng tôi muốn nói rằng giải pháp từ Will WM đã làm việc cho tôi. Thêm EnableExtensionlessUrls vào sổ đăng ký đã khắc phục sự cố.

Lưu ý phụ, nếu bạn chạy aspnet_regiis bất kỳ lúc nào, nó sẽ xóa giá trị này và bạn sẽ cần phải thêm lại.

1

tôi sử dụng regex sau như Nguyên tắc đầu tiên với Ionics ISAPI Ổ ghi cho các trang web chạy trên ASP.NET 4 trên IIS 6 để khắc phục những vấn đề gây ra bởi sự breaking change giới thiệu với ASP.NET 4 :

RewriteRule ^(.*)/eurl.axd/[a-f0-9]{32}(.*)$ $1$2 

Điều này cho phép tôi sử dụng lại url không mở rộng.

Lưu ý rằng nhóm thứ hai chụp chuỗi truy vấn nếu có và đặt lại chuỗi đó vào url được ghi đè.

Và có, đó là a feature, not a bug.

+0

điều này làm việc cho tôi –

0

Bạn cũng sẽ gặp lỗi này trên các thư mục ảo ASP.NET 2.0 trong IIS6 nếu bạn có thư mục ảo khác trên cùng một trang được đặt thành 4.0 và DefaultWebSite được đặt để sử dụng ASP.NET 4.0.

Giải pháp là thay đổi DefaultWebSite trở lại ASP.NET 2.0. Thư mục ảo 4.0 của bạn sẽ vẫn hoạt động tốt bên dưới trang web đó.

2

Thay đổi phiên bản ASp.Net từ 4.0 thành 2.0 và áp dụng. và quay trở lại Phiên bản Asp.Net thành 4.0. Điều này sẽ giải quyết vấn đề.

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