小编Jon*_*Jon的帖子

app.config configSections自定义设置无法找到架构信息

我正在学习有关创建自定义部分的app.config.我有那部分工作,它编译并根据需要获取信息,但我收到有关它无法找到架构信息的警告.

我做了一些谷歌搜索,无法找到这种情况的简单解释.

这种方法(目前对我来说似乎有意义)是为该项目中的每个部分提供一个模式文件.我理解如何创建模式文件,但不知道我希望如何进入项目.

此外,当它被编译并部署到另一台机器时,我认为还需要复制模式文件.

感谢您的帮助

乔恩

c# schema app-config

16
推荐指数
1
解决办法
2万
查看次数

C#ConfigurationManager.GetSection无法加载文件或程序集

我卡住了!这看起来真的很愚蠢,但我看不出我错在哪里.我正在创建一个2.0 C#ASP.NET网站.我试图在web.config文件中使用自定义部分:

DatabaseFactorySectionHandler sectionHandler = ConfigurationManager.GetSection("DatabaseFactoryConfiguration") as DatabaseFactorySectionHandler;
Run Code Online (Sandbox Code Playgroud)

我有一个单独的DLL用于Bailey.DataLayer命名空间中的对象.但是当我运行test.aspx页面时,我收到以下错误:

System.Configuration.ConfigurationErrorsException was unhandled by user code

Message="An error occurred creating the configuration section handler for DatabaseFactoryConfiguration: Could not load file or assembly 'Bailey.DataLayer' or one of its dependencies. The system cannot find the file specified. (C:\\Documents and Settings\\Administrator.PIP\\My Documents\\Visual Studio 2005\\WebSites\\bailey\\web.config line 13)"
Source="System.Configuration"
Run Code Online (Sandbox Code Playgroud)

我想要获得的课程如下:

namespace Bailey.DataLayer
{
    public sealed class DatabaseFactorySectionHandler : ConfigurationSection
    {
        [ConfigurationProperty("Name")]
        public string Name
        {
            get { return (string)base["Name"]; }
        }

        [ConfigurationProperty("ConnectionStringName")]
        public string ConnectionStringName
        { …
Run Code Online (Sandbox Code Playgroud)

c# configurationmanager configsection

15
推荐指数
2
解决办法
5万
查看次数

如何建模存在于所有有界上下文中并且是应用程序核心部分的实体?

我正在使用DDD原则制作应用程序.在尽可能多地思考一切之后,我就开始制作我的有界背景了.我还没有设置最终结构,但截至目前,我的应用程序将包含以下有界上下文:

  1. 员工管理
  2. 购买
  3. 档案
  4. 报告

我希望它尽可能地可插拔,所以我可以单独开发和维护它们.他们可能会公开WCF或Web API来与它们进行交互.

我将使用Udi Dahans实现一个简单的CQRS模式.我不想一直使用事件源,消息总线等,因为这不是一个高度协作的应用程序(少于1000个用户,他们不太可能编辑相同的小数据集),这将增加了许多不必要的复杂性.

那么问题:

所有BC的员工和部门实体都很常见,如何建模?

部门是组织结构的一部分,因此在员工管理BC中,员工在一个部门工作,他们可以管理一个部门,他们有他们所从事过的部门的历史.

在购买BC商品是从部门购买,并交付给部门.Suplliers与不同部门签订了不同的合同.

在存档中,一些信息将被存档并绑定到一个部门,依此类推.

这同样适用于员工.

如何从有界上下文中保留数据?

它们可以映射到同一个数据库,也可以各自拥有自己的数据库.

到目前为止我已经做了一些想法

如何建模
我应该再建一个名为"公司"或"组织"的BC并在那里管理部门吗?

根据上面引用的Udi Dahans文章,我应该为每个BC制作一个部门实体和一个雇员实体,只需要我所需要的BC字段和行为.这听起来很合理,但后来我正在考虑如何实际使用它,我无法弄明白.我需要访问其他地方管理的部门,但我究竟是如何做到这一点而不是混合我的BC?

如何使用?
假设我通过查询从somwhere获取我的部门列表.在UI中我得到了我想要购买的部门列表.这是该部门的第一次购买,因此采购BC还不了解这个部门......所以购买BC的部门对象将填充从其他BC维护的数据 - 所以我该如何坚持这一点?如果不存在,我需要添加一些信息,如送货地址和发票地址?

在"注册部门UI"中,我应该在所有BC上调用"RegisterDepartment"服务,然后确保这些服务与通过UI(MVC控制器)所做的所有更改同步吗?

与员工一样.我想知道哪个员工进行了购买或在存档中放了一些东西.所以我不知何故在这些BC中也需要一个员工对象,但是从不同的BC管理它们.

持久化
可以通过将不同的employee-objects映射到数据库中的同一个表来解决上面的一些挑战.购买BC和Archive BC不能注册新员工,而是将信息附加到那些在那里的人并将他们绑定到同一数据库中的其他对象.然后数据库会让所有BC仍然生活在同一个世界......

我需要建议,所以我最终不会制作一些以后很难维护的东西.

c# design-patterns domain-driven-design cqrs bounded-contexts

15
推荐指数
2
解决办法
2658
查看次数

jquery datepicker ms ajax updatepanel在回发后不起作用

所以我做了一些相关问题的阅读,并有一些有趣的东西,但没有找到我的答案,至少没有理解答案.

我对AJAX,javascript和sclient side scripting一般都是新手.

我一直在使用C#asp.net,并且最近添加了一些更新面板以平滑用户控件和更新位,以便每次都不重新加载页面.一切都很出色,我很高兴,直到我决定尝试使用一些JQuery.

我从ui.jquery.js中选择了一个很好的日期选择器,它在普通页面上运行得很好.当我在updatepanel中进行回发时,我的问题就出现了.日期选择器停止工作.

根据我的阅读,我需要在回发后手动连接这个.

1)我真的不明白为什么.在我的母版页上我有:

<script type="text/javascript">
    $(function() {
        $(".mydatepickerclass").datepicker({dateFormat: 'dd-mm-yy'});
    });
</script>
Run Code Online (Sandbox Code Playgroud)

它使用分配的mydatepickerclass获取我的输入框.和所有的作品.为什么这会停止回发.

2)我如何解决这个问题....如何连接它以便在updatepanel中回发后它仍然有效.

我知道ID可能会在回发中发生变化,我认为但是当我使用课程时,我不知道出了什么问题.

编辑

我的usercontrol中有以下代码,其中发生了更新:

<asp:UpdatePanel ID="HistoryUpdatePanel" runat="server">
<ContentTemplate>
    <%-- Start of Company History section --%>
    <fieldset>
        <legend>Activity History</legend>

           <script type="text/javascript">
              $(function() {
              $(".mydatepickerclass").datepicker({dateFormat: 'dd-mm-yy'});
              });
           </script>            

        <div>
            <asp:ListBox ID="listBoxHistoryTypes" runat="server" SelectionMode="Multiple" AutoPostBack="true" OnSelectedIndexChanged="listBoxHistoryTypes_IndexChanged" />
            <label>Date From:</label><asp:TextBox class="mydatepickerclass" ID="txtdatefrom" runat="server" />
            <label>Date To:</label><input class="mydatepickerclass" type="text" />
            <asp:TextBox class="mydatepickerclass" ID="txtdateto" runat="server" />
            <asp:Button ID="btnFilterSearch" runat="server" Text="Filter Results" OnClick="btnFilterSearch_Click" />
        </div>


    </fieldset>
</ContentTemplate>
Run Code Online (Sandbox Code Playgroud)

updatepanel内的脚本不会重新连接吗?

谢谢

乔恩霍金斯

c# jquery updatepanel asp.net-ajax

14
推荐指数
4
解决办法
5万
查看次数

IIS相当于Apache中的VirtualHost

是否有相当于Apache的VirtualHost for IIS?我们希望能够从一个IP运行多个网站,并使用不同的DNS名称对它们进行寻址.

即我有

www.dom1.com
www.dom2.com
www.dom3.com
Run Code Online (Sandbox Code Playgroud)

都指向了123.123.10.1.Apache只会在端口80上运行,只需使用virtualhost来决定应该提供哪个站点.

这可能在Windows IIS6中吗?

谢谢

apache iis virtualhost

13
推荐指数
1
解决办法
4万
查看次数

如何使用反射创建"反射机器"

好吧,所以标题糟透了,但我想不出更好的东西(也许其他人可以?).

所以我在这里围绕一个主题提出几个问题.我想要做的是创建一个程序,可以获取一个对象并使用反射列出它的所有属性,方法,构造函数等.然后我可以在运行时操作这些对象来测试,调试和弄清楚我的一些类/程序在运行时正在进行,(其中一些将是Windows服务,可能安装在机器上而不是从VS运行调试).

所以我会为程序提供一个钩子,从本地机器(仅)这个程序可以获得主对象的实例,因此可以看到在其中运行的所有子对象.(为了安全起见,程序可能需要使用arg来启动以暴露该钩子).

"反射机器"将允许运行时操作和询问.

听起来有可能吗?

程序是否必须提供一个钩子,或者"反射机器"是否可以使用EXE并且(如果它知道它正在使用的所有类),创建一个要使用的对象?

我知道你可以在运行时导入DLL,以便它知道各种类,但是你可以导入单个类吗?IE说我有没有编译成DLL的项目'Y'但是我想在它上面使用"反射机器",我可以指向该目录并获取文件以便能够引用这些类吗?

编辑:我想尝试自己开发它,但我已经有一长串项目,我想做,已经开始.当有很多可供选择的选择时,为什么要重新发明轮子.

c# reflection

12
推荐指数
1
解决办法
1848
查看次数

ConfigurationSection ConfigurationManager.GetSection()始终返回null

我正在尝试学习如何使用ConfigurationSection类.我曾经使用IConfigurationSectionHandler,但发布它已被折旧.因此,作为一个好孩子,我正在尝试"正确"的方式.我的问题是它总是返回null.

我有一个控制台应用程序和DLL.

class Program
{
    static void Main(string[] args)
    {           
        StandardConfigSectionHandler section = StandardConfigSectionHandler.GetConfiguration();

        string value = section.Value;
    }
}
Run Code Online (Sandbox Code Playgroud)

app配置:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>

  <configSections>
    <sectionGroup name="ConfigSectionGroup">
      <section name="ConfigSection" type="Controller.StandardConfigSectionHandler, Controller" />
    </sectionGroup>
  </configSections>

  <ConfigSectionGroup>
    <ConfigSection>
      <test value="1" />
    </ConfigSection>
  </ConfigSectionGroup>

</configuration>
Run Code Online (Sandbox Code Playgroud)

DLL中的section处理程序:

namespace Controller
{    
    public class StandardConfigSectionHandler : ConfigurationSection
    {
    private const string ConfigPath = "ConfigSectionGroup/ConfigSection/";

    public static StandardConfigSectionHandler GetConfiguration()
    {
        object section = ConfigurationManager.GetSection(ConfigPath);
        return section as StandardWcfConfigSectionHandler;
    }

    [ConfigurationProperty("value")]
    public string Value
    {
        get …
Run Code Online (Sandbox Code Playgroud)

c# configurationmanager configurationsection

10
推荐指数
1
解决办法
3万
查看次数

LINQ sum项目集合返回带有结果的对象(多列)

我知道我可以用foreach做下面的事情,但是想知道是否有一个干净且"性感"的方式用LINQ做这个.

public class item
{
    public int total { get; set; }
    public int net { get; set; }
}


class Program
{
    static void Main(string[] args)
    {
        List<item> items = new List<item>()
                               {
                                   new item() { total = 123, net = 423},
                                   new item() { total = 432, net = 54},
                                   new item() { total = 33, net = 57654},
                                   new item() { total = 33, net = 423},
                                   new item() { total = 3344, net = 423},
                                   new …
Run Code Online (Sandbox Code Playgroud)

c# linq

10
推荐指数
2
解决办法
2万
查看次数

Powershell ftp上传错误530未登录

我正在努力让PowerShell脚本工作.我是PowerShell的新手,所以可能会遗漏一些愚蠢的东西.

$sourceuri = "ftp://ftp.example.com/myfolder/myfile.xml"
$username = "user"
$password = "password"

# Create a FTPWebRequest object to handle the connection to the ftp server
$ftprequest = [System.Net.FtpWebRequest]::create($sourceuri)

$credentials = New-Object System.Net.NetworkCredential($username,$password)
# set the request's network credentials for an authenticated connection
$ftprequest.Credentials = $credentials

$ftprequest.Method = [System.Net.WebRequestMethods+Ftp]::UploadFile
$ftprequest.UseBinary = 1
$ftprequest.KeepAlive = 0

# read in the file to upload as a byte array
$content = gc -en byte $fileName
$ftprequest.ContentLength = $content.Length
# get the request stream, and write the …
Run Code Online (Sandbox Code Playgroud)

ftp powershell

9
推荐指数
1
解决办法
6223
查看次数

使用msdeploy部署MVC站点,包括CI服务器中没有虚拟目录设置的IIS设置

我试图弄清楚如何使用msdeploy与我的MVC站点能够自动化部署,包括在远程服务器上设置IIS.

我使用以下命令来创建包:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe Clients\PokerLeagueWebSite\PokerLeagueWebSite.csproj /T:Package /p:Configuration=Deployment
Run Code Online (Sandbox Code Playgroud)

我的设置如下:

local dev box using VS2010 + GIT
GITHUB for repo
Teamcity for CI server (different machine to dev box)
remote (same network) UAT server
Run Code Online (Sandbox Code Playgroud)

如果我勾选"包含在IIS中配置的IIS设置"和"包含此Web项目使用的应用程序池设置"并在我的开发框中构建软件包,那么从那里发布它可以很好地工作.这是我使用的命令:

C:\myproject\Packages\Deployment\PokerLeagueWebSite>PokerLeagueWebSite.deploy.cmd /Y /M:192.168.10.98:8172 /U:administrator /P:password
Run Code Online (Sandbox Code Playgroud)

这会在我的UAT服务器中创建虚拟目录,一切都很顺利.问题是当我提交github并且CI服务器下载并构建它时.当然,CI服务器上没有设置虚拟目录,因此构建/包失败.

我想要做的是使用msdeploy提供的包装,并能够远程部署站点和IIS.我想有几个选择:

1)将MVC项目文件更改为硬代码iis设置,以便在运行构建包时,它会创建具有正确设置的XML文件,以便可以从任何计算机进行部署.我认为这可以通过项目根目录中的package.xml文件来完成,但我不知道如何设置所有应用程序池和虚拟目录设置.感觉就像我在那里的一半,但无法得到最后的推动.

2)使用powershell更改创建的包XML文件,以便添加提取IIS设置.

第一个选项是可取的,因为它将所有信息保存在一个位置,您不需要记住在部署之前运行额外的脚本.

我相信我可以通过使用VS创建包并获得我需要的设置然后编写脚本来计算第二个选项,但我没有线索并且在阅读它时花了一些公平而没有任何成功我将如何做选项一.

NB

在我发布之前阅读一些建议的问题我可以看到某种可能性:

MSdeploy使用错误的虚拟目录名部署MVC 2应用程序

这个问题讨论了在msdeploy命令上传递额外的值,看起来没问题,但不是内部构建过程可以这么说.不确定要使用的所有命令,但我可以肯定谷歌.

这个链接似乎继续以上:http://msdn.microsoft.com/en-us/library/ee814764.aspx

此页面介绍了选项2的可能性.http://learn.iis.net/page.aspx/1082/web-deploy-parameterization/

认为这是方法:在网站的根目录中使用parameters.xml来获取项目内容:http: //vishaljoshi.blogspot.com/2010/07/web-deploy-parameterization-in-action.html

编辑

我继续阅读和测试这个.使用项目根目录中的parameters.xml文件,我可以在那里得到参数.我的问题似乎是archive.xml文件.这是非常不同的,如果我没有使用IIS设置复选框勾选,导致程序包无法正确安装的原因.我已经开始阅读有关[project] .wpp.targets文件的内容,该文件可能会有所帮助,但很可能会丢失这个atm.

编辑2

所以我认为我需要做的是获取[project] .sourcemanifest.xml文件来改变它的一些设置.我相信这就是驱动archive.xml的原因,这就是现在的不同之处.我认为我的parameters.xml工作正常.

不使用IIS时,sourcemanifest.xml如下所示:

<?xml version="1.0" encoding="utf-8"?>
<sitemanifest>
  <IisApp path="C:\hoh_code\GIT\ai-poker-project\Clients\PokerLeagueWebSite\obj\Deployment\Package\PackageTmp" managedRuntimeVersion="v4.0" />
  <setAcl path="C:\hoh_code\GIT\ai-poker-project\Clients\PokerLeagueWebSite\obj\Deployment\Package\PackageTmp" setAclResourceType="Directory" />
  <setAcl path="C:\hoh_code\GIT\ai-poker-    project\Clients\PokerLeagueWebSite\obj\Deployment\Package\PackageTmp" …
Run Code Online (Sandbox Code Playgroud)

iis asp.net-mvc msdeploy

8
推荐指数
1
解决办法
2833
查看次数