powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / Как добавить параметры в конфигурационный файл WCF ?
8 сообщений из 8, страница 1 из 1
Как добавить параметры в конфигурационный файл WCF ?
    #36987759
stenford
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WCF сервис должен иметь доступ к connection string SQL сервера, что-то не могу найти где его хранить, Project -> Settings (как в вин. проекте) отсутствуют в WCF проекте, есть файл Web.config, можно его как-то использовать для этой цели или надо как-то по-другому?
...
Рейтинг: 0 / 0
Как добавить параметры в конфигурационный файл WCF ?
    #36988086
Фотография bured
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Как добавить параметры в конфигурационный файл WCF ?
    #36992394
stenford
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
добавил элементы в .config файл, но они что-то не читаются. Добавил так:

Код: plaintext
1.
2.
3.
4.
5.
<appSettings>
    <add key="customsetting1" value="Some text here"/>
    <add key="customsetting2" value="Some text here1"/>
    <add key="customsetting3" value="Some text here2"/>
  </appSettings>  
</configuration>
Теперь пытаюсь прочитать их из кода, но эти элементы не видны:

Код: plaintext
1.
2.
Dim rootWebConfig1 As System.Configuration.Configuration
        rootWebConfig1 = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(Nothing)        
Return rootWebConfig1.AppSettings.Settings.Count.ToString()

Это выдает 0.
Более того, если написать вот так:

Код: plaintext
Return rootWebConfig1.ConnectionStrings.ConnectionStrings( 0 ).ToString()
то выпадает какаю-то строка подключения, которой в конфиге вообще нет =) Как такое может быть? Может есть еще один где-то спрятанный конфиг файл?
...
Рейтинг: 0 / 0
Как добавить параметры в конфигурационный файл WCF ?
    #36993334
Фотография bured
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stenford,
авторReturn rootWebConfig1.ConnectionStrings.ConnectionStrings(0).ToString()
Это секция <connectionStrings> в web.config. Посмотрите ссылку, которую я давал.
...
Рейтинг: 0 / 0
Как добавить параметры в конфигурационный файл WCF ?
    #36994825
Фотография bured
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Судя по всему у тебя IIS-хостинг. Тогда всё аналогично:
Код: plaintext
1.
2.
3.
<appSettings>
	<add key="customsetting1" value="Some text here"/>
</appSettings>
Код: plaintext
1.
2.
3.
System.Configuration.Configuration config = System.Web.Configuration.WebConfigurationManager.
       OpenWebConfiguration(HttpContext.Current.Request.ApplicationPath);
        Response.Write( config.AppSettings.Settings["customsetting1"].Value);

Хотя можешь воспользоваться и секцией <connectionStrings>, как в примере по ссылке.
...
Рейтинг: 0 / 0
Как добавить параметры в конфигурационный файл WCF ?
    #36994826
Фотография bured
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Как добавить параметры в конфигурационный файл WCF ?
    #36998421
stenford
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не работает :( Похоже я что-то кардинально не то делаю.
Вот конфиг файл целиком, может appSettings надо куда-то в другое место файла писать? я его в самый конец файла пишу

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
<?xml version="1.0" encoding="UTF-8"?>
<!--
    Note: As an alternative to hand editing this file you can use the 
    web admin tool to configure settings for your application. Use
    the Website->Asp.Net Configuration option in Visual Studio.
    A full list of settings and comments can be found in 
    machine.config.comments usually located in 
    \Windows\Microsoft.Net\Framework\v2.x\Config 
-->


<configuration>


  <configSections>
    
		<sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
			<sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
				<section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
				<sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
					<section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere" />
					<section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
					<section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
					<section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
				</sectionGroup>
			</sectionGroup>
		</sectionGroup>
	</configSections>


  
  
  
	<system.web>
		<!--
            Set compilation debug="true" to insert debugging 
            symbols into the compiled page. Because this 
            affects performance, set this value to true only 
            during development.

            Visual Basic options:
            Set strict="true" to disallow all data type conversions 
            where data loss can occur. 
            Set explicit="true" to force declaration of all variables.
        -->
		<compilation debug="true" strict="false" explicit="true">
			<assemblies>
				<add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
				<add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
				<add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
				<add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
			</assemblies>
		</compilation>
		<pages>
			<namespaces>
				<clear />
				<add namespace="System" />
				<add namespace="System.Collections" />
				<add namespace="System.Collections.Specialized" />
				<add namespace="System.Configuration" />
				<add namespace="System.Runtime.Serialization" />
				<add namespace="System.ServiceModel" />
				<add namespace="System.Text" />
				<add namespace="System.Text.RegularExpressions" />
				<add namespace="System.Linq" />
				<add namespace="System.Web" />
				<add namespace="System.Web.Caching" />
				<add namespace="System.Web.SessionState" />
				<add namespace="System.Web.Security" />
				<add namespace="System.Web.Profile" />
				<add namespace="System.Web.UI" />
				<add namespace="System.Web.UI.WebControls" />
				<add namespace="System.Web.UI.WebControls.WebParts" />
				<add namespace="System.Web.UI.HtmlControls" />
			</namespaces>
			<controls>
				<add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
			</controls>
		</pages>
		<!--
            The <authentication> section enables configuration 
            of the security authentication mode used by 
            ASP.NET to identify an incoming user. 
        -->
		<authentication mode="Windows" />
		<!--
            The <customErrors> section enables configuration 
            of what to do if/when an unhandled error occurs 
            during the execution of a request. Specifically, 
            it enables developers to configure html error pages 
            to be displayed in place of a error stack trace.

        <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
            <error statusCode="403" redirect="NoAccess.htm" />
            <error statusCode="404" redirect="FileNotFound.htm" />
        </customErrors>
        -->
		<httpHandlers>
			<remove verb="*" path="*.asmx" />
			<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
			<add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
			<add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false" />
		</httpHandlers>
		<httpModules>
			<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
		</httpModules>
	</system.web>
	<system.codedom>
		<compilers>
			<compiler language="c#;cs;csharp" extension=".cs" warningLevel="4" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
				<providerOption name="CompilerVersion" value="v3.5" />
				<providerOption name="WarnAsError" value="false" />
			</compiler>
			<compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" warningLevel="4" type="Microsoft.VisualBasic.VBCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
				<providerOption name="CompilerVersion" value="v3.5" />
				<providerOption name="OptionInfer" value="true" />
				<providerOption name="WarnAsError" value="false" />
			</compiler>
		</compilers>
	</system.codedom>
 <!--
        The system.webServer section is required for running ASP.NET AJAX under Internet
        Information Services  7 . 0 .  It is not necessary for previous version of IIS.
    -->
	<system.webServer>
		<validation validateIntegratedModeConfiguration="false" />
		<modules>
			
		</modules>
		<handlers>
			<remove name="WebServiceHandlerFactory-Integrated" />
			
			
			
		</handlers>
        <directoryBrowse enabled="true" />
	</system.webServer>
	<system.serviceModel>
		<services>
   <service behaviorConfiguration="ServiceBehavior" name="File">
    <endpoint address="" binding="wsHttpBinding" contract="IFile">
     <identity>
      <dns value="localhost" />
     </identity>
    </endpoint>
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
   </service>
  </services>
		<behaviors>
			<serviceBehaviors>
				<behavior name="ServiceBehavior">
					<!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
					<serviceMetadata httpGetEnabled="true" />
					<!-- To receive exception details in faults for debugging purposes, set the value below to true.  Set to false before deployment to avoid disclosing exception information -->
					<serviceDebug includeExceptionDetailInFaults="true" />
				</behavior>
			</serviceBehaviors>
		</behaviors>
	</system.serviceModel>



  <appSettings>
    <add key="customsetting1" value="Some text here"/>
  </appSettings>


</configuration>



Потом в WCF сервисе я создал функцию по чтению строки из конфига:

Код: plaintext
1.
2.
3.
4.
5.
6.
Public Function ReadConnectionString() As String Implements IFile.ReadConnectionString

Dim rootWebConfig1 As System.Configuration.Configuration
        rootWebConfig1 = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(Nothing)
        Return rootWebConfig1.AppSettings.Settings.Count.ToString()

End Sub

Теперь в клиенте я пытаюсь вызвать эту функцию:

Код: plaintext
1.
2.
Dim WCFService As ServiceReference1.FileClient = New ServiceReference1.FileClient()

MessageBox.Show(WCFService.ReadConnectionString())

На экране высвечивается ноль :(

А изменить WCF сервис и попытаться вызвать строку подключения вот так:

Код: plaintext
1.
2.
3.
4.
5.
Public Function ReadConnectionString() As String Implements IFile.ReadConnectionString

Dim rootWebConfig1 As System.Configuration.Configuration = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(Nothing)
        Return rootWebConfig1.ConnectionStrings.ConnectionStrings( 0 ).ToString()

End Function

то высвечивается вообще какая-то неизвестная строка (скриншот приложен), ее нет в конфиге, откуда она вообще появилась? =) Такое впечатление что читается откуда-то из другого места..
...
Рейтинг: 0 / 0
Как добавить параметры в конфигурационный файл WCF ?
    #37001130
stenford
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нашел решение, так работает:

Код: plaintext
Return System.Configuration.ConfigurationManager.ConnectionStrings("MyConnectionString").ToString()
т.е. нужно было другим пространством имен оказывается пользоваться...
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / Как добавить параметры в конфигурационный файл WCF ?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]