WCF服务启动是参数传递问题,急?

zzdfc 2008-10-22 10:04:11
请问那位高手知道,在自宿主WCF服务时,怎么在服务启动时传递一些参数给它?谢谢
...全文
410 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
_C_S_D_N_ 2011-11-10
  • 打赏
  • 举报
回复
关注.....有类似问题....
zzdfc 2008-10-24
  • 打赏
  • 举报
回复
正如楼上说的,属性值是自己定义的,MyService好像没有构造函数,能有构造函数吗,没有试过,好多例子好像都不带构造函数,要是有构造函数的话,我就可以在构造函数里读取app.config了
宝_爸 2008-10-24
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 zzdfc 的回复:]
我写了个WCF服务,自托管的,供许多的客户端调用,但在WCF服务启动时要能自动读取app.config文件中自定义的值,用来初始化WCF服务中的一些私有属性值,这个要怎么实现,我在自托管WCF服务时没有发现给WCF服务传递参数的方法,也没有发现服务启动时有启动事件,有谁知道怎么做吗
[/Quote]

这个属性应该是你自己定义的吧?系统的属性值可以通过app.config中的system.servicemodel中的内容指定。
能不能举个例子,我好像还是没有明白你的意思。

如果你所说的属性值是你自己定义的,你可以在用的时候直接去config中读取(用这个ConfigurationManager.AppSettings["TestDataPath"];)

另外你说的启动selfhost wcf service是不是说的这个:
Uri baseAddress = new Uri("http://localhost:8000/");
ServiceHost host = new ServiceHost(typeof(MyService),baseAddress);

host.Open( );
//Can do blocking calls:
Application.Run(new MyForm( ));

host.Close( );

这个确实没有办法传参数进去. 但是你还是可以在MyService中取得config的内容。
宝_爸 2008-10-24
  • 打赏
  • 举报
回复
app.config中的内容又不会变,就像我的例子似的,为MyService加入静态变量:
readonly static string TestDataPath = ConfigurationManager.AppSettings["TestDataPath"];

然后程序中直接使用TestDataPath 就可以了,静态变量会在第一次使用它的时候初始化,在这里也就是从config中读取内容。
宝_爸 2008-10-23
  • 打赏
  • 举报
回复
如果参数保存在app.config中,不是必须在启动时读取,使用时读取即可。

App.config
<configuration>
<appSettings>

<add key="TestDataPath" value="D:\WDCService\WDCService\PerformanceTestClient\SpeedRecord\"/>
.....
</appSettings>
....
</configuration>

代码:
...
using System.Configuration;
....
class SpeedTesting : IDisposable
{
....
readonly static string TestDataPath = ConfigurationManager.AppSettings["TestDataPath"];
....
}

注意:需要加入System.Configuration的引用。
sahusoft 2008-10-23
  • 打赏
  • 举报
回复
不知楼主说的是什么参数,比如:
1.命令行参数,如:host.exe -f filename;
2.服务端操作的参数,如:opt1(a,b);
3.服务运行的环境变量,如:<identity>
<dns value="localhost" />
</identity>
zzdfc 2008-10-23
  • 打赏
  • 举报
回复
我写了个WCF服务,自托管的,供许多的客户端调用,但在WCF服务启动时要能自动读取app.config文件中自定义的值,用来初始化WCF服务中的一些私有属性值,这个要怎么实现,我在自托管WCF服务时没有发现给WCF服务传递参数的方法,也没有发现服务启动时有启动事件,有谁知道怎么做吗
zzdfc 2008-10-22
  • 打赏
  • 举报
回复
参数保存在app.config中,问题是wcf service启动时如何读取config文件
宝_爸 2008-10-22
  • 打赏
  • 举报
回复
能不能加一个OperationContract
由客户端调用。服务器端由static变量记录是否已经已经调用过了。

如果只是变量的话,建议使用const成员变量,或者保存在app.config中,在web service中读取config文件。

13,347

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET技术前瞻
社区管理员
  • .NET技术前瞻社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧