2010-01-05 38 views
6

Tôi có IIS 6.0 trên Windows Server 2003.Cách triển khai dịch vụ WCF trên IIS 6.0

Tôi đã cài đặt .NET 3.5 và 4 beta 2. Những thứ bình thường "ASP" đang hoạt động (hoàn hảo). Nhưng khi tôi cố gắng điều hướng đến dịch vụ của tôi (/myServer/MyService.svc) Tôi nhận được 404. Không tìm thấy trang.

Để chính xác, tôi có chính sách khóa mở rộng dịch vụ web 404 "" ngăn chặn yêu cầu này ".

tôi đã sử dụng ServiceModelReg.exe /ia để đảm bảo rằng phần mở rộng tôi biết và tôi đã kiểm tra cấu hình sử dụng:

admin-Tools, iis, nhà tab, cấu hình, thực thi-ô, và có:

mở rộng : .svc, đường dẫn: c:\windows\microsoft.net\framework\v4.0.210..., động từ: tất cả động từ.

Vì vậy mọi thứ có vẻ OK. Nhưng tôi vẫn nhận được một 404-2.

+0

là nó lựa chọn của bạn/mong muốn rằng các file .svc được xử lý bởi .NET 4 đã ?? –

Trả lời

2

Bạn có thể hiển thị cho chúng tôi web.config phía máy chủ của bạn (chỉ phần <system.serviceModel>) không? Máy chủ của bạn sống ở đâu trên máy chủ của bạn?

Khi lưu trữ trong IIS, địa chỉ dịch vụ của bạn được xác định bởi:

tên
  • máy chủ (hoặc địa chỉ IP)
  • tên của thư mục ảo (cộng với bất kỳ thư mục con dưới đó), trong đó của bạn * .svc tập sống
  • các * .svc tự nộp

Vì vậy, nó sẽ là một cái gì đó như:

http://YourServer/YourVirtualDirectory/MyService.svc 

Bạn dường như không sử dụng thư mục ảo trong đường dẫn bạn đề cập - tệp * .svc của bạn có thực sự nằm trong thư mục gốc của máy chủ web hay bạn quên thêm thư mục ảo vào đường dẫn của mình?

1

Thông tin trong bài đăng trên blog này tỏ ra vô giá khi làm việc này.

http://xamlcoder.com/blog/?p=7

Tôi không chắc chắn về IIS6 nhưng tôi đã tạo ra một trang web mới trong IIS7 (Tôi không thể có được những điều làm việc dưới một thư mục ảo nhưng đó có lẽ là tôi thiếu IIS kiến ​​thức) tôi đặt .svc của tôi trong thư mục gốc và trong ~/Services/

Mọi thứ bắt đầu hoạt động tốt.

Blog đã đề cập rằng IIS nên xem trong ~/Dịch vụ/tự động bất cứ khi nào tệp .svc được phân phát nhưng không hoạt động. Đó là lý do tại sao tôi chỉ cần sao chép tệp .svc vào thư mục gốc của trang web của tôi.

Hy vọng điều này sẽ hữu ích.

7

"Chính sách khóa mở rộng dịch vụ web" của bạn đang ngăn phần mở rộng ASP.NET 4.0 ISAPI xử lý yêu cầu của bạn. Điều đó đã xảy ra với tôi, hãy khám phá:

C:\>cscript c:\WINDOWS\system32\iisext.vbs /ListFile 
Microsoft (R) Windows Script Host Version 5.6 
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved. 

Connecting to server ...Done. 

Status/Extension Path 
------------------------ 
0 C:\WINDOWS\system32\inetsrv\httpodbc.dll 
0 C:\WINDOWS\system32\inetsrv\ssinc.dll 
0 C:\WINDOWS\system32\inetsrv\asp.dll 
1 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll 
0 *.exe 
0 C:\WINDOWS\system32\inetsrv\httpext.dll 
0 *.dll 
1 C:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll 
1 C:\WINDOWS\system32\MQISE.DLL 
0 C:\WINDOWS\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll 

Bạn có "0" bên cạnh v4.0 aspnet_isapi.dll như tôi đã làm không? Có vấn đề của bạn.Bạn cần phải kích hoạt nó:

C:\>cscript c:\WINDOWS\system32\iisext.vbs /EnFile C:\WINDOWS\Microsoft.NET\Frame 
work64\v4.0.30319\aspnet_isapi.dll 
Microsoft (R) Windows Script Host Version 5.6 
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved. 

Connecting to server ...Done. 
Enabling extension file complete. 

Để biết thêm về các công cụ iisext.vbs: http://support.microsoft.com/kb/328419/

+0

Cảm ơn các chi tiết tuyệt vời. Bạn đã giải quyết được vấn đề của tôi. –

+0

cảm ơn rất nhiều bài viết này – holzleube

+0

Đây chính là vấn đề của tôi. Tôi hiện đang xử lý sự cố một vấn đề trên một máy chủ cũ và nhận được WCF làm việc trên Win2003/IIS6 mất nhiều thời gian mà tôi mong đợi. – JCallico

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