locked
未找到服务配置文件。请确保服务 Contest 的配置文件部署到 %CCP_SERVICEREGISTRATION_PATH% RRS feed

  • 问题

  • 运行网上的例子,出现“Microsoft.Hpc.Scheduler.Session.SessionException”类型的未经处理的异常出现在 Microsoft.Hpc.Scheduler.Session.dll 中。
    其他信息: 未找到服务配置文件。请确保服务 Contest 的配置文件部署到 %CCP_SERVICEREGISTRATION_PATH%。
    需要做什么部署吗?谢谢
    2011年10月19日 12:19

答案

  • 参见iiFlame同学在这里的解释:http://social.msdn.microsoft.com/Forums/zh-CN/WindowsHPCServer/thread/877b3abc-ec50-4614-98ed-68a6134815df

    如果是在本地集群配置Contest服务,需要把示例代码中的Contest.config复制到环境变量%CCP_SERVICEREGISTRATION_PATH%所指的目录,默认为\\你的头节点名字\HpcServiceRegistration 目录。还要注意修改其中<microsoft.Hpc.Session.ServiceRegistration><service assembly="c:\Services\AsianOptionsService.dll" 让它指向你的service代码。

    2011年10月19日 12:51
    版主
  • 开发人员完成SOA服务代码后需要两步来部署一个服务到HPC系统:1)把该服务的配置文件(ServiceName.config,文件名必须与服务同名)放在环境变量%CCP_SERVICEREGISTRATION_PATH%所指的目录(默认为\\你的头节点名字\HpcServiceRegistration 目录),这样HPC就知道有这样一个服务可以使用,2)把SOA服务的dll放在某个HPC节点访问得到的路径,比如共享文件夹或每个节点都有的绝对路径,然后在该服务的配置文件(ServiceName.config)里service assembly部分指向该路径,这样就告诉HPC系统从哪里加载该服务代码。

    举例说明:

    • 书中示例,服务是AsianOptionsService,故服务的配置文件为AsianOptionsService.config,其中service assembly部分指向c:\Services\AsianOptionsService.dll
    • 比赛示例,服务是Contest,故服务的配置文件为Contest.config,其中service assembly部分指向c:\Services\AsianOptionsService.dll。你需要自己手动作这两步部署--1)把Contest.config放在环境变量%CCP_SERVICEREGISTRATION_PATH%所指的目录(默认为\\你的头节点名字\HpcServiceRegistration 目录)。 2)把AsianOptionsService.dll 放在c:\Services。
    • 实际比赛环境:服务是Contest,故服务的配置文件为Contest.config,其中service assembly部分指向[你的ftp根目录]\Service.dll,这两部分已经由主办方部署好了,你只需要上传Service.dll。如果你要在本地模拟上海超算的比赛环境,就要自己手动作这两步部署。


    2011年10月19日 13:35
    版主

全部回复

  • 参见iiFlame同学在这里的解释:http://social.msdn.microsoft.com/Forums/zh-CN/WindowsHPCServer/thread/877b3abc-ec50-4614-98ed-68a6134815df

    如果是在本地集群配置Contest服务,需要把示例代码中的Contest.config复制到环境变量%CCP_SERVICEREGISTRATION_PATH%所指的目录,默认为\\你的头节点名字\HpcServiceRegistration 目录。还要注意修改其中<microsoft.Hpc.Session.ServiceRegistration><service assembly="c:\Services\AsianOptionsService.dll" 让它指向你的service代码。

    2011年10月19日 12:51
    版主
  • 谢谢。

    可是Solution中貌似没有AsianOptionsService.dll这个文件啊,是Service.dll吗?把它拷贝到\HpcServiceRegistration 目录下再把"c:\Services\AsianOptionsService.dll"  改为这个路径是这样吗?可还是报错啊。

     

    或者能简单解释一下这个文件时做什么的吗?实在搞不太懂。谢谢!

    2011年10月19日 13:17
  • 开发人员完成SOA服务代码后需要两步来部署一个服务到HPC系统:1)把该服务的配置文件(ServiceName.config,文件名必须与服务同名)放在环境变量%CCP_SERVICEREGISTRATION_PATH%所指的目录(默认为\\你的头节点名字\HpcServiceRegistration 目录),这样HPC就知道有这样一个服务可以使用,2)把SOA服务的dll放在某个HPC节点访问得到的路径,比如共享文件夹或每个节点都有的绝对路径,然后在该服务的配置文件(ServiceName.config)里service assembly部分指向该路径,这样就告诉HPC系统从哪里加载该服务代码。

    举例说明:

    • 书中示例,服务是AsianOptionsService,故服务的配置文件为AsianOptionsService.config,其中service assembly部分指向c:\Services\AsianOptionsService.dll
    • 比赛示例,服务是Contest,故服务的配置文件为Contest.config,其中service assembly部分指向c:\Services\AsianOptionsService.dll。你需要自己手动作这两步部署--1)把Contest.config放在环境变量%CCP_SERVICEREGISTRATION_PATH%所指的目录(默认为\\你的头节点名字\HpcServiceRegistration 目录)。 2)把AsianOptionsService.dll 放在c:\Services。
    • 实际比赛环境:服务是Contest,故服务的配置文件为Contest.config,其中service assembly部分指向[你的ftp根目录]\Service.dll,这两部分已经由主办方部署好了,你只需要上传Service.dll。如果你要在本地模拟上海超算的比赛环境,就要自己手动作这两步部署。


    2011年10月19日 13:35
    版主
  • 多谢!

    可是的确是比赛实例,也就是GuidelineAndSample\ContestSample\AsianOptionsService文件夹里面的contest.config中service assembly部分指向AsianOptionsService.dll啊,我很困惑,能举个例子怎么修改吗?多谢了!

     

     

     <microsoft.Hpc.Session.ServiceRegistration>

            <service assembly="c:\Services\AsianOptionsService.dll" 

                     includeExceptionDetailInFaults="true"

                     maxConcurrentCalls="0"

                     >

                <!--Below is a sample for adding environment variables to the service

                <environmentVariables>

                    <add name="myname1" value="myvalue1"/>

                    <add name="myname2" value="myvalue2"/>

                </environmentVariables>-->

            </service>

        </microsoft.Hpc.Session.ServiceRegistration>

     


    • 已编辑 qxy12 2011年10月19日 14:00
    2011年10月19日 13:57
  • 我刚才把比赛示例和实际比赛环境混起来说了,现在编辑了原文把二者分开,请再看看。

    你如果看到的错误消息还是不变的话,需要做手动作这两步部署--1)把Contest.config放在环境变量%CCP_SERVICEREGISTRATION_PATH%所指的目录(默认为\\你的头节点名字\HpcServiceRegistration 目录。 2)把AsianOptionsService。dll放在c:\Services。

    2011年10月19日 14:12
    版主
  • 多谢!可是还是有问题。我生成了解决方案,并没有找到 AsianOptionsService.dll,只有Service.dll。需要改名在把它放到本机C:\Services文件夹下吗?这样还是报错

     

    “Microsoft.Hpc.Scheduler.Session.SessionException”类型的未经处理的异常出现在 Microsoft.Hpc.Scheduler.Session.dll 中。


    其他信息: 设置作业属性失败。调度器引发了异常: Microsoft.Hpc.Scheduler.Properties.SchedulerException: 找不到具有指定名称的作业模板。

       在 Microsoft.Hpc.Scheduler.Store.SchedulerStoreSvc.OpenProfile(String profileName)

       在 Microsoft.Hpc.Scheduler.SchedulerJob.InitProfile(String profileName)

       在 Microsoft.Hpc.Scheduler.Session.Internal.Common.ThreadSafeSchedulerJob.SetJobTemplate(String templateName)

       在 Microsoft.Hpc.Scheduler.Session.Internal.SessionLauncher.JobHelper.MakeJobProperties(SessionStartInfoContract startInfo, ISchedulerJob schedulerJob)

       在 Microsoft.Hpc.Scheduler.Session.Internal.SessionLauncher.SessionLauncher.AllocateInternal(SessionStartInfoContract startInfo, String endpointPrefix, Boolean durable, Int32& sessionid, String& serviceVersion)。

    2011年10月19日 14:45
  • 或者我把Service.dll放到C:\Services下,将 c:\Services\AsianOptionsService.dl改成 c:\Services\Service.dll,还是报错

     

    “Microsoft.Hpc.Scheduler.Session.SessionException”类型的未经处理的异常出现在 Microsoft.Hpc.Scheduler.Session.dll 中。


    其他信息: 设置作业属性失败。调度器引发了异常: Microsoft.Hpc.Scheduler.Properties.SchedulerException: 找不到具有指定名称的作业模板。

       在 Microsoft.Hpc.Scheduler.Store.SchedulerStoreSvc.OpenProfile(String profileName)

       在 Microsoft.Hpc.Scheduler.SchedulerJob.InitProfile(String profileName)

       在 Microsoft.Hpc.Scheduler.Session.Internal.Common.ThreadSafeSchedulerJob.SetJobTemplate(String templateName)

       在 Microsoft.Hpc.Scheduler.Session.Internal.SessionLauncher.JobHelper.MakeJobProperties(SessionStartInfoContract startInfo, ISchedulerJob schedulerJob)

       在 Microsoft.Hpc.Scheduler.Session.Internal.SessionLauncher.SessionLauncher.AllocateInternal(SessionStartInfoContract startInfo, String endpointPrefix, Boolean durable, Int32& sessionid, String& serviceVersion)。

    2011年10月19日 14:50
  • 这是另外一个错误了: 找不到具有指定名称的作业模板。

    你用了什么作业模板?Contest4SOA?你自己的集群里可能还没创建这样名字的作业模板,可以选择先不指定作业模板,注释掉设作业模板那行代码。这些都是跟自己环境有关的啊,看看书和MSDN,推荐自己根据错误信息理解一下。

    2011年10月19日 14:55
    版主