Tôi đang thử nghiệm dịch vụ REST trong WCF trên .net 4 - tức là không có tệp svc. Nó hoạt động tốt khi chạy với máy chủ VS dev nhưng khi tôi chuyển nó để chạy với IIS tôi nhận được 404 khi cố gắng duyệt trang trợ giúp hoặc nhấn bất kỳ phương thức dịch vụ nào.404 khi chạy .net 4 dịch vụ WCF trên IIS (không có tệp svc)
Tôi đã giảm trở lại dịch vụ xương trần để chỉ chạy ứng dụng trên IIS nhưng tôi không chắc có gì sai với nó.
Các global.asax chỉ đơn giản có
protected void Application_Start(object sender, EventArgs e)
{
RouteTable.Routes.Add(new ServiceRoute("", new WebServiceHostFactory(), typeof(DataPortalService)));
}
và dịch vụ riêng của mình cũng đơn giản như nó được:
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class DataPortalService : IDataPortalService
{
[WebGet(UriTemplate = "Test/TestMethod")]
public string TestMethod()
{
return "Hi!";
}
}
[ServiceContract]
public interface IDataPortalService
{
[OperationContract]
string TestMethod();
}
và cấu hình tập tin của
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
</system.web>
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
<standardEndpoints>
<webHttpEndpoint>
<standardEndpoint name="" helpEnabled="true" automaticFormatSelectionEnabled="true" />
</webHttpEndpoint>
</standardEndpoints>
</system.serviceModel>
</configuration>
Va vào/help trang hoặc phương pháp cho tôi một 404.0.
Tôi đoán là tôi chỉ thiếu một số thiết lập trong IIS để khởi động nó trong cuộc sống mặc dù nó hơi lệch một chút nhưng nó hoạt động tốt trên máy chủ dev chứ không phải IIS.
phiên bản IIS nào? –
7.5.7600 chạy trên W7. –
Bạn có nhận được một HTTP 404.4 không? Nếu vậy, hãy kiểm tra xem Ánh xạ xử lý của bạn có đúng không. – tomasmcguinness