2009-05-28 30 views
8

Tôi đã cài đặt một bộ dịch vụ web chuẩn trên máy chủ Windows 2003, IIS 6. Khi tôi truy cập bất kỳ ai trong số các dịch vụ web thông qua trình duyệt của tôi, tôi nhận được màn hình màu vàng .NET với ngoại lệ:"Tệp chưa được biên dịch trước và không thể yêu cầu"

Tệp '/SuperOfficeWebService/Contact.asmx' chưa được biên dịch trước và không thể yêu cầu.

Các dịch vụ web chuẩn tương tự (được cài đặt thông qua .msi) hoạt động trên các máy khác.

Tệp .asmx chỉ chứa văn bản "Đây là tệp đánh dấu được tạo bởi công cụ biên dịch trước và không nên xóa!", Như mong đợi.

Trong thư mục con \ thư mục con tôi có tệp .compiled khớp với tệp .asmx.

Điều gì có thể gây ra thông báo lỗi? Bất kỳ cài đặt IIS hoặc cài đặt .NET 2.0 nào ngăn IIS tải các tệp được biên dịch?

Trả lời

2

Trong trường hợp bất cứ ai khác vẫn đang tìm kiếm một giải pháp, tôi đã cùng một vấn đề. Vấn đề của tôi là tôi đã sử dụng 'aspnet_compiler' từ thư mục khung sai. Dự án của tôi đã được tạo ra trong VS'05 và .net 2.0. Tôi đã cố gắng biên dịch trước từ "c: \ windows \ Microsoft .NET \ Framework \ v4.xxxx" khi tôi cần phải biên dịch trước từ "c: ... \ v2.xxxx".

Hy vọng rằng sẽ giúp ai đó.

0

Tôi đã gặp sự cố tương tự và đã khắc phục sự cố bằng cách chạy lệnh sau để liên kết lại trình biên dịch phù hợp với IIS.

Chuyển đến thư mục của phiên bản của .NET bạn muốn sử dụng (ví dụ: C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727)

Và chạy: aspnet_regiis -i

Hope this helps.

0

Nếu bạn gặp sự cố này khi chạy tập lệnh MSBuild, rất có thể dự án của bạn là dự án 2.0 hoặc 3.5 và MSBuild đang sử dụng trình biên dịch 4.0. Thêm TargetFrameworkMoniker="3.5" vào chỉ thị AspNetCompiler của bạn.

1

Tôi có cùng một thông báo chứ không phải với dịch vụ web. Trong trường hợp của tôi, nó là một ứng dụng web vani 2.0, điều đó cũng xảy ra khi sử dụng AJAX Control Toolkit v1.0.61025. Khi tôi theo dõi nó xuống, tôi thấy môi trường của tôi (VS hoặc một trong các addons của tôi) tước hai yếu tố từ web.config của tôi:

  • "lắp ráp" tag đã mất tích hai dòng:

    <add assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
    <add assembly="System.Web.Extensions.Design, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
    
  • Cũng mất tích là những dòng này từ "system.web" phần:

    <httpHandlers> 
        <remove verb="*" path="*.asmx"/> 
        <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 
        <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 
        <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/> 
    </httpHandlers> 
    <httpModules> 
        <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 
    </httpModules> 
    

tôi đang làm việc triển khai và sử dụng XCOPY web.config để kiểm soát sự khác biệt giữa phát triển và sống (chuỗi kết nối, v.v.).Sau khi xuất bản trong VS (vào một thư mục trên hộp dev của tôi), tôi xóa web.config (vì nó có cài đặt dev của tôi) và chỉ tiếp tục sử dụng cùng một web.config trong live. Vì web.config trực tiếp có các dòng bị thiếu này, tôi đã biên dịch dựa trên web.config khác với nhiều giá trị khóa ứng dụng.

Khôi phục các dòng này trong môi trường dev của tôi và xuất bản lại sự cố đã khắc phục. Whoa, họ đã biến mất một lần nữa từ VS 2010 của tôi, tôi tốt hơn đăng nhập một câu hỏi!

0

Trong trường hợp của chúng tôi, chúng tôi đã nhận được thông báo này sau khi tạo lại trang web. Các tệp trên trang web phải được biên dịch bằng .NET 4.0.3 và IIS mặc định là 2.0.5. Chúng ta phải thay đổi phiên bản ASP.NET trong Site> Properties> ASP.NET.

0

Bin triển khai Microsoft.WebServices3.dll 3.0.5305.0 làm việc cho tôi trên Windows Server 2012 R2 với .Net Framework 4.5+. Tùy chọn này làm giảm bớt sự cần thiết phải cài đặt .Net Framework 3.5 và WSE 3.0.

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