i get an error when i try to access a web service.The webservice is internally developed by another developer who has left. The website uses 'Sitecore' to renderits pages through a subscription model.Therefore a cookie is passed to the webservice to access the value of the appsettings to retrieve the data.
I am not able to access the value of the appsettings 'key'. Please look at 'somestring' in the webconfig file. A string 'xxxxxx' is passed to cookie to verify. Also it looks like only safe addresses will be authenciated in the config file.
Below are: 1. the code im executing.2. the error page.3. The app.config file
Please advise as to how i could retrieve the 'key'.
************************************************************************************************************1. Code consuming the webservice*********************************************************************************************************
using System;using System.Data;using System.Configuration;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using System.Xml;using Breakingviews.www.BreakingViewsWebService;using Breakingviews.Configuration;using System.Web.Services.Protocols;using System.Net;
public partial class MostRead : System.Web.UI.Page{ private ContentInfoService BuildContentInfoService() { ContentInfoService contentInfoService = new ContentInfoService(); AddxxxxxxxCookies(contentInfoService); return contentInfoService; }
static void AddMagicCookies(SoapHttpClientProtocol webService) { CookieContainer cookieContainer = new CookieContainer(); string secret = BvConfiguration.GetConfigurationString("SomeString"); Uri uri = new Uri(webService.Url); cookieContainer.Add(new Cookie("xxxxxxx", secret, "/", uri.Host));
webService.CookieContainer = cookieContainer; }
public void ListReadyStories() { ContentInfoService service = BuildContentInfoService(); Guid[] stories = service.ListReadyStories(60); //List<Guid> storyList = new List<Guid>(stories); Response.Write(stories.ToString()); }
protected void Page_Load(object sender, EventArgs e) {
ListReadyStories();
}}
*******************************************************************************************2. Error page i get when i view MostRead.aspx in Browser *******************************************************************************************Server Error in '/' Application.--------------------------------------------------------------------------------
Couldn't find type for class Breakingviews.WebModules.AssertHealth.AssertListener, Breakingviews.WebModules. Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.Configuration.ConfigurationErrorsException: Couldn't find type for class Breakingviews.WebModules.AssertHealth.AssertListener, Breakingviews.WebModules.
Source Error:
Line 29: {Line 30: string settingValue = ConfigurationSettings.AppSettings[key];Line 31: Debug.WriteLine("Read configuration value " + key + "=" + settingValue);Line 32: return settingValue;Line 33: }
Source File: C:\BackUp\code\dotnet\Breakingviews.Configuration\BvConfiguration.cs Line: 31
Stack Trace:
[ConfigurationErrorsException: Couldn't find type for class Breakingviews.WebModules.AssertHealth.AssertListener, Breakingviews.WebModules.] System.Diagnostics.TraceUtils.GetRuntimeObject(String className, Type baseType, String initializeData) +1902756 System.Diagnostics.TypedElement.BaseGetRuntimeObject() +42 System.Diagnostics.ListenerElement.GetRuntimeObject() +82 System.Diagnostics.ListenerElementsCollection.GetRuntimeObject() +134 System.Diagnostics.TraceInternal.get_Listeners() +134 System.Diagnostics.TraceInternal.WriteLine(String message) +105 System.Diagnostics.Debug.WriteLine(String message) +4 Breakingviews.Configuration.BvConfiguration.GetConfigurationString(String key) in C:\BackUp\code\dotnet\Breakingviews.Configuration\BvConfiguration.cs:31 Breakingviews.Configuration.BvConfiguration.GetConfigurationTimeSpan(String key, TimeSpan defaultValue) in C:\BackUp\code\dotnet\Breakingviews.Configuration\BvConfiguration.cs:47 Breakingviews.WebModules.ConcurrentUsageModule..cctor() in C:\BackUp\code\dotnet\Breakingviews.WebModules\ConcurrentUsageModule.cs:28
[TypeInitializationException: The type initializer for 'Breakingviews.WebModules.ConcurrentUsageModule' threw an exception.]
[TargetInvocationException: Exception has been thrown by the target of an invocation.] System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandle& ctor, Boolean& bNeedSecurityCheck) +0 System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean fillCache) +103 System.RuntimeType.CreateInstanceImpl(Boolean publicOnly, Boolean skipVisibilityChecks, Boolean fillCache) +268 System.Activator.CreateInstance(Type type, Boolean nonPublic) +66 System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes) +1036 System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes) +114 System.Web.Configuration.Common.ModulesEntry.Create() +41 System.Web.Configuration.HttpModulesSection.CreateModules() +203 System.Web.HttpApplication.InitInternal(HttpContext context, HttpApplicationState state, MethodInfo[] handlers) +1006 System.Web.HttpApplicationFactory.GetNormalApplicationInstance(HttpContext context) +259 System.Web.HttpApplicationFactory.GetApplicationInstance(HttpContext context) +114 System.Web.HttpRuntime.ProcessRequestInternal(HttpWorkerRequest wr) +350
--------------------------------------------------------------------------------Version Information: Microsoft .NET Framework Version:2.0.50727.1433; ASP.NET Version:2.0.50727.1433
********************************************************************************************************************3. Section of the webconfig file**********************************************************************************************************Webconfig file under <appsettings>:
<add key="Secretsomeotherkey" value="{643E7B39-991F-487c-AA52-B408071BGFDE9}!~secret~!{5B68008E-5054-4oc7-B7E2-1C82E0BF5965}"/> <!-- the password that is passed (as a cookie) to access the webservice This isn't particularly secure (it's passed as plaintext) but the webservice itself is designed for this to be broken --> <add key="SomeString" value="{0BD4523-3A2D-4880-81H4-278GG20FC6A4}"/> <!-- The list of IP addresses that the internal web services will listen to, separated by semi-colons (;) --><add key="SomeStringforSafeAddresses" value="127.0.0.1;222.33.30.122;222.131.113.222;192.1.1.6;192.1.1.233;192.1.1.254"/>