0
直接點,我有一個WCF項目和主機項目(我想啓動服務),當我做WCF作爲一個startUp項目,它承載服務,我收到一條確認消息(右下),一切工作正常,但是當我嘗試從主機項目託管時,它不託管,沒有任何確認消息。WCF不是主機
這裏是我的主代碼:
static void Main(string[] args)
{
using (ServiceHost host = new ServiceHost(typeof(MovieService)))
{
host.Open();
Console.WriteLine("The host is online.");
Console.ReadLine();
host.Close();
}
}
主機的app.config:
<system.serviceModel>
<services>
<service name="CinemaProject.WCF.MovieService">
<endpoint address="" binding="wsHttpBinding" contract="CinemaProject.WCF.IMovieService">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="http://localhost:8733/Design_Time_Addresses/CinemaProject.WCF/MovieService/" />
</baseAddresses>
</host>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior>
<serviceMetadata httpGetEnabled="True" />
<serviceDebug includeExceptionDetailInFaults="False" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
而且我的WCF代碼:
public class MovieService : IMovieService
{
static MovieCtr movieCtr = new MovieCtr();
public void Add(Movie movie)
{
movieCtr.add(movie);
}
public void SearchById(int id)
{
}
public void Update(Movie movie)
{
}
public void Delete(Movie movie)
{
}
public void DeleteById(int id)
{
}
public IEnumerable<MovieDTO> All()
{
return movieCtr.All();
}
}
和WCF的app.config:
<system.serviceModel>
<services>
<service name="CinemaProject.WCF.MovieService">
<endpoint address="" binding="wsHttpBinding" contract="CinemaProject.WCF.IMovieService">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="http://localhost:8733/Design_Time_Addresses/CinemaProject.WCF/MovieService/" />
</baseAddresses>
</host>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior>
<serviceMetadata httpGetEnabled="True" />
<serviceDebug includeExceptionDetailInFaults="False" />
</behavior>
</serviceBehaviors>
</behaviors>
有人可以看看它,並指出我在正確的方向,併發佈一個解決方案,如果可能的話。
謝謝 馬呂斯J.
因此您啓動主機代碼作爲控制檯應用程序,但消息「主機在線。」沒有出現? – Sjips 2014-11-06 13:14:50
看起來,但我沒有在右下角看到確認消息,客戶端也無法連接,但如果啓動WCF,一切正常。 – MariusJusc 2014-11-06 13:17:28
不知道您是否得到了確認消息,因爲您現在正在使用控制檯應用程序作爲主機。您可以通過在CMD窗口中使用'netstat -a'來檢查您的PC實際上是否正在監聽端口8733上的傳入連接。 – Sjips 2014-11-06 13:25:44