- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 WCF 应用程序中,我有一些自定义配置类用于 app.config
.但是,我从 WCF 服务主机获得以下堆栈跟踪(它尝试在 WCF 服务的构造函数中检索自定义配置):
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.Configuration.ConfigurationErrorsException: Unrecognized element 'ManagedService'. (Service.dll.config line 8) at System.Configuration.BaseConfigurationRecord.EvaluateOne(String[] keys, SectionInput input, Boolean isTrusted, FactoryRecord factoryRecord, SectionRecord sectionRecord, Object parentResult) at System.Configuration.BaseConfigurationRecord.Evaluate(FactoryRecord factoryRecord, SectionRecord sectionRecord, Object parentResult, Boolean getLkg, Boolean getRuntimeObject, Object& result, Object& resultRuntimeObject) at System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String configKey, Boolean getLkg, Boolean checkPermission, Boolean getRuntimeObject, Boolean requestIsHere, Object& result, Object& resultRuntimeObject) at System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String configKey, Boolean getLkg, Boolean checkPermission, Boolean getRuntimeObject, Boolean requestIsHere, Object& result, Object& resultRuntimeObject) at System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String configKey, Boolean getLkg, Boolean checkPermission, Boolean getRuntimeObject, Boolean requestIsHere, Object& result, Object& resultRuntimeObject) at System.Configuration.BaseConfigurationRecord.GetSection(String configKey) at System.Configuration.ConfigurationManager.GetSection(String sectionName) at ManagementService..ctor() in ManagementService.cs:line 42 --- End of inner exception stack trace --- at System.RuntimeMethodHandle._InvokeConstructor(IRuntimeMethodInfo method, Object[] args, SignatureStruct& signature, RuntimeType declaringType) at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at System.ServiceModel.Description.ServiceDescription.CreateImplementation(Type serviceType) at System.ServiceModel.Description.ServiceDescription.GetService(Type serviceType) at System.ServiceModel.ServiceHost.CreateDescription(IDictionary`2& implementedContracts) at System.ServiceModel.ServiceHostBase.InitializeDescription(UriSchemeKeyedCollection baseAddresses) at System.ServiceModel.ServiceHost..ctor(Type serviceType, Uri[] baseAddresses) at Microsoft.Tools.SvcHost.ServiceHostHelper.CreateServiceHost(Type type, ServiceKind kind) at Microsoft.Tools.SvcHost.ServiceHostHelper.OpenService(ServiceInfo info) System.Configuration.ConfigurationErrorsException: Unrecognized element 'ManagedService'. (Service.dll.config line 8) at System.Configuration.BaseConfigurationRecord.EvaluateOne(String[] keys, SectionInput input, Boolean isTrusted, FactoryRecord factoryRecord, SectionRecord sectionRecord, Object parentResult) at System.Configuration.BaseConfigurationRecord.Evaluate(FactoryRecord factoryRecord, SectionRecord sectionRecord, Object parentResult, Boolean getLkg, Boolean getRuntimeObject, Object& result, Object& resultRuntimeObject) at System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String configKey, Boolean getLkg, Boolean checkPermission, Boolean getRuntimeObject, Boolean requestIsHere, Object& result, Object& resultRuntimeObject) at System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String configKey, Boolean getLkg, Boolean checkPermission, Boolean getRuntimeObject, Boolean requestIsHere, Object& result, Object& resultRuntimeObject) at System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String configKey, Boolean getLkg, Boolean checkPermission, Boolean getRuntimeObject, Boolean requestIsHere, Object& result, Object& resultRuntimeObject) at System.Configuration.BaseConfigurationRecord.GetSection(String configKey) at System.Configuration.ConfigurationManager.GetSection(String sectionName) at ManagementService..ctor() in ManagementService.cs:line 42
(对于讨厌的堆栈跟踪感到抱歉)。
我在这里查看了大量关于此错误的教程和其他问题,但没有任何建议或解决方案。
这是 app.config
的相关部分
<configSections>
<section name="ManagedServices" type="Service.Configuration.ManagedServicesSection, Service, Version=1.0.0.0, Culture=neutral " allowLocation="true" allowDefinition="Everywhere" restartOnExternalChanges="false" />
</configSections>
<ManagedServices>
<services>
<ManagedService serviceAssembly="Service" serviceType="Service.Runnables.HostManagerRunner" identifier="HostManager" priority="0">
<clear />
</ManagedService>
<ManagedService serviceAssembly="Service" serviceType="Service.Runnables.TimeoutMonitor" identifier="TimeoutMonitor" priority="0">
<add key="timeoutLength" value="30" />
<add key="runInterval" value="30" />
</ManagedService>
</services>
</ManagedServices>
基本上,此 WCF 服务用于管理在启动时动态加载和启动(通过此配置通知)的其他服务。
<ManagedServices>
来自ManagedServicesSection
继承自 ConfigurationSection
public class ManagedServicesSection : ConfigurationSection
{
[ConfigurationProperty("services", IsDefaultCollection = true)]
public ManagedServiceCollection ServiceCollection
{
get { return (ManagedServiceCollection) base["services"]; }
}
}
从这里可以看出,<services>
是 MangedServiceCollection
继承自 ConfigurationElementCollection
public class ManagedServiceCollection : ConfigurationElementCollection
{
public ManagedServiceCollection()
{
}
public override ConfigurationElementCollectionType CollectionType
{
get
{
return ConfigurationElementCollectionType.BasicMap;
}
}
public ManagedService this[int index]
{
get { return BaseGet(index) as ManagedService; }
set
{
if (BaseGet(index) != null)
BaseRemoveAt(index);
BaseAdd(index, value);
}
}
public ManagedService this[string name]
{
get { return BaseGet(name) as ManagedService; }
set
{
if (BaseGet(name) != null)
BaseRemove(name);
BaseAdd(value);
}
}
protected override ConfigurationElement CreateNewElement()
{
return new ManagedService();
}
protected override object GetElementKey(ConfigurationElement element)
{
return ((ManagedService)element).Identifier;
}
}
此集合包含 ManagedService
继承自 ConfigurationElement
的 s :
public class ManagedService : ConfigurationElement
{
[ConfigurationProperty("serviceAssembly", IsRequired = true)]
public string ServiceAssembly
{
get { return (string) this["serviceAssembly"]; }
set { this["serviceAssembly"] = value; }
}
[ConfigurationProperty("serviceType", DefaultValue = "IRunnable", IsRequired = true)]
public string ServiceType
{
get { return (string) this["serviceType"]; }
set { this["serviceType"] = value; }
}
[ConfigurationProperty("identifier", IsRequired = true, IsKey = true)]
public string Identifier
{
get { return (string) this["identifier"]; }
set { this["identifier"] = value; }
}
[ConfigurationProperty("priority", DefaultValue = 0, IsRequired = false)]
public int Priority
{
get { return (int) this["priority"]; }
set { this["priority"] = value; }
}
[ConfigurationProperty("serviceParameters", IsDefaultCollection = true)]
public ServiceParameterCollection ServiceParameters
{
get { return (ServiceParameterCollection)base["serviceParamters"]; }
}
}
代码在这个贴子中可能更容易看pastie.org/private/jkiylqsrklpcdbtfdrajq
最佳答案
我无法遵从您的示例,缺少 ServiceParameterCollection... 所以我已经为您准备了我的工作示例。我们开始...
首先让我们创建配置类,注意 AddItemName ConfigurationCollection 参数(我认为这是您的代码中缺少的):
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;
namespace GP.Solutions.WF.DocumentProvider.Entities.SharePoint
{
/// <summary>
/// Base SharePoint 2010 provider contiguration
/// </summary>
[Serializable]
public class SharePoint2010Settings : ConfigurationSection
{
/// <summary>
/// DocumentStorageRoot
/// </summary>
[ConfigurationProperty("SiteUrl", IsRequired = true, DefaultValue = "")]
public string SiteUrl
{
get { return (string)base["SiteUrl"]; }
set { base["SiteUrl"] = value; }
}
/// <summary>
/// TitleProperty
/// </summary>
[ConfigurationProperty("TitleProperty", IsRequired = true, DefaultValue = "Title")]
public string TitleProperty
{
get { return (string)base["TitleProperty"]; }
set { base["TitleProperty"] = value; }
}
/// <summary>
/// ProvideFileAsLink
/// </summary>
[ConfigurationProperty("ProvideFileAsLink", IsRequired = true, DefaultValue = true)]
public bool ProvideFileAsLink
{
get { return (bool)base["ProvideFileAsLink"]; }
set { base["ProvideFileAsLink"] = value; }
}
/// <summary>
/// DocumentCategories
/// </summary>
[ConfigurationProperty("DocumentCategories")]
public SharePointDocumentCategoryCollection DocumentCategories
{
get { return (SharePointDocumentCategoryCollection)base["DocumentCategories"]; }
set { base["DocumentCategories"] = value; }
}
}
/// <summary>
/// Configuration element that holds SharePointDocumentCategory collection
/// </summary>
[ConfigurationCollection(typeof(SharePointDocumentCategory), AddItemName = "DocumentCategory", CollectionType = ConfigurationElementCollectionType.BasicMap)]
public class SharePointDocumentCategoryCollection : ConfigurationElementCollection
{
protected override ConfigurationElement CreateNewElement()
{
return new SharePointDocumentCategory();
}
protected override object GetElementKey(ConfigurationElement element)
{
return ((SharePointDocumentCategory)element).CategoryName;
}
}
/// <summary>
/// Configuration element that holds information for specific document category
/// </summary>
[Serializable]
public class SharePointDocumentCategory: ConfigurationElement
{
/// <summary>
/// CategoryName
/// </summary>
[ConfigurationProperty("CategoryName", IsRequired = true, DefaultValue = "")]
public string CategoryName
{
get { return (string)base["CategoryName"]; }
set { base["CategoryName"] = value; }
}
/// <summary>
/// FolderName
/// </summary>
[ConfigurationProperty("FolderName", IsRequired = true, DefaultValue = "")]
public string FolderName
{
get { return (string)base["FolderName"]; }
set { base["FolderName"] = value; }
}
/// <summary>
/// TitleProperty
/// </summary>
[ConfigurationProperty("OverwriteFiles", IsRequired = true, DefaultValue = true)]
public bool OverwriteFiles
{
get { return (bool)base["OverwriteFiles"]; }
set { base["OverwriteFiles"] = value; }
}
/// <summary>
/// DocumentCategories
/// </summary>
[ConfigurationProperty("CategoryFields")]
public SharePointCategoryFieldsCollection CategoryFields
{
get { return (SharePointCategoryFieldsCollection)base["CategoryFields"]; }
set { base["CategoryFields"] = value; }
}
}
/// <summary>
/// Configuration element that holds SharePointDocumentCategory collection
/// </summary>
[ConfigurationCollection(typeof(SharePointDocumentCategory), AddItemName = "CategoryField", CollectionType = ConfigurationElementCollectionType.BasicMap)]
public class SharePointCategoryFieldsCollection : ConfigurationElementCollection
{
protected override ConfigurationElement CreateNewElement()
{
return new SharePointCategoryField();
}
protected override object GetElementKey(ConfigurationElement element)
{
return ((SharePointCategoryField)element).FieldName;
}
}
/// <summary>
/// Class that determines specific field
/// </summary>
[Serializable]
public class SharePointCategoryField : ConfigurationElement
{
/// <summary>
/// FolderName
/// </summary>
[ConfigurationProperty("FieldName", IsRequired = true, DefaultValue = "")]
public string FieldName
{
get { return (string)base["FieldName"]; }
set { base["FieldName"] = value; }
}
}
}
这是 web.config 部分:
<configSections>
<sectionGroup name="CustomConfiguration">
<section name="SharePoint2010Section" type="GP.Solutions.WF.DocumentProvider.Entities.SharePoint.SharePoint2010Settings,CustomConfiguration" allowDefinition="Everywhere" allowLocation="true"/>
</sectionGroup>
</configSections>
<CustomConfiguration>
<SharePoint2010Section SiteUrl="http://server" TitleProperty="Title" ProvideFileAsLink="false">
<DocumentCategories>
<DocumentCategory CategoryName="Vhodni računi" FolderName="" OverwriteFiles="true">
<CategoryFields>
<CategoryField FieldName="Datum" />
<CategoryField FieldName="Vrednost" />
</CategoryFields>
</DocumentCategory>
<DocumentCategory CategoryName="Zahtevek za dopust" FolderName="" OverwriteFiles="true">
<CategoryFields>
<CategoryField FieldName="Datum od" />
<CategoryField FieldName="Datum do" />
</CategoryFields>
</DocumentCategory>
</DocumentCategories>
</SharePoint2010Section>
</CustomConfiguration>
关于C# WCF 系统.Configuration.ConfigurationErrorsException : Unrecognized element 'ManagedService' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12824301/
我有这个代码: System.err.print("number of terms = "); System.out.println(allTerms.size()); System.err
我有以下问题:在操作系统是 Linux 的情况下和在操作系统是 MacOs 的情况下,我必须执行不同的操作。 所以我创建了以下 Ant 脚本目标: /u
我正在调用 system("bash ../tools/bashScript\"This is an argument!\"&"),然后我正在调用 close(socketFD) 直接在 system
使用最初生成的随机元素来约束随机数组的连续元素是否有效。 例如:我想生成一组 10 个 addr、size 对来模拟典型的内存分配例程并具有如下类: class abc; rand bit[5:0
我正在创建一个必须使用system(const char*)函数来完成一些“繁重工作”的应用程序,并且我需要能够为用户提供粗略的进度百分比。例如,如果操作系统正在为您移动文件,它会为您提供一个进度条,
我即将编写一些项目经理、开发人员和业务分析师会使用的标准/指南和模板。目标是更好地理解正在开发或已经开发的解决方案。 其中一部分是提供有关记录解决方案的标准/指南。例如。记录解决/满足业务案例/用户需
在开发使用压缩磁盘索引或磁盘文件的应用程序时,其中部分索引或文件被重复访问(为了论证,让我们说一些类似于 Zipfian 分布的东西),我想知道什么时候足够/更好地依赖操作系统级缓存(例如,Debia
我们编写了一个 powershell 脚本,用于处理来自内部系统的图像并将其发送到另一个系统。现在,业务的另一部分希望加入其中,对数据进行自己的处理,并将其推送到另一个系统。打听了一下,公司周围有几个
我正在尝试朗姆酒我的应用程序,但我收到以下错误:System.Web.HttpUnhandledException:引发了“System.Web.HttpUnhandledException”类型的异
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是偏离主题的,
所以我在其他程序中没有收到此错误,但我在这个程序中收到了它。 这个程序是一个我没有收到错误的示例。 #include int main() { system("pause"); } // en
我在 c# System.URI.FormatExption 中遇到问题 为了清楚起见,我使用的是 Segseuil 的 Matlab 方法,并且它返回一个图片路径 result。我想为其他用户保存此
我正在尝试像这样设置文本框的背景色: txtCompanyName.BackColor = Drawing.Color.WhiteSmoke; 它不喜欢它,因为它要我在前面添加系统,例如: txtCo
请帮助我解决 System.StackOverflowException我想用 .aspx 将记录写入数据库我使用 4 层架构来实现这一切都正常但是当我编译页面然后它显示要插入数据的字段时,当我将数据
我使用了一些通常由系统调用的API。 因此,我将 android:sharedUserId="android.uid.system" 添加到 manifest.xml, 并使用来自 GIT 的 And
我正在尝试创建一个小型应用程序,它需要对/system 文件夹进行读/写访问(它正在尝试删除一个文件,并创建一个新文件来代替它)。我可以使用 adb 毫无问题地重新挂载该文件夹,如果我这样做,我的应用
我想从没有 su 的系统 priv-app 将/system 重新挂载为 RW。如何以编程方式执行此操作?只会用 Runtime.getruntime().exec() 执行一个 shell 命令吗
我正在尝试制作一个带有登录系统的程序我对此很陌生,但我已经连续工作 8 个小时试图解决这个问题。这是我得到的错误代码 + ServerVersion 'con.ServerVersion' threw
当我“构建并运行”Code::Blocks 中的程序时,它运行得非常好!但是当我从“/bin”文件夹手动运行它时,当它试图用 system() 调用“temp.bat”时,它会重置。这是为什么?它没有
我想使用 system/pipe 命令来执行具有特殊字符的命令。下面是示例代码。通过系统/管道执行命令后,它通过改变特殊字符来改变命令。我很惊讶地看到系统命令正在更改作为命令传递的文本。 run(ch
我是一名优秀的程序员,十分优秀!