我按照这篇MSDN文章彻底创建了托管在NT服务中的WCF服务.
当我在服务控制台中单击"开始"时,我在事件查看器中看到以下内容:
服务无法启动.System.InvalidOperationException:服务'MyServiceNamespace.RequestProcessorImpl'具有零应用程序(非基础结构)端点.这可能是因为没有为您的应用程序找到配置文件,或者因为在配置文件中找不到与服务名称匹配的服务元素,或者因为在service元素中没有定义端点.
我试图检查我能找到的所有可能的原因.这是App.Config文件中的服务描述:
<service name="MyServiceNamespace.RequestProcessorWindowsService"
behaviorConfiguration="RequestProcessorServiceBehavior">
<host>
<baseAddresses>
<add baseAddress="http://localhost:8095/RequestProcessorService"/>
</baseAddresses>
</host>
<endpoint address= ""
binding="wsHttpBinding"
contract="MyServiceNamespace.IRequestProcessor" />
<endpoint address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange" />
</service>
Run Code Online (Sandbox Code Playgroud)
所有实体都以其命名空间命名,因此这不是问题所在.App.Config文件放在bin\Debug中 - 确切地说是NT服务的起始位置.
但是当我从原始实现中改变我的ServiceBase后代时OnStart():
public class RequestProcessorWindowsService : ServiceBase {
public ServiceHost serviceHost = null;
//other methods skipped
protected override void OnStart(string[] args)
{
if( serviceHost != null ) {
serviceHost.Close();
}
serviceHost = new ServiceHost( typeof(RequestProcesssorImpl) );
serviceHost.Open();
}
}
Run Code Online (Sandbox Code Playgroud)
到下一个,以便它调用AddServiceEndpoint()该服务开始没关系(但我不能添加它的引用,所以我猜其他问题):
public class RequestProcessorWindowsService …Run Code Online (Sandbox Code Playgroud) 我有一个PHP脚本,可以将sql脚本导入MySQL 5数据库.每个脚本只包含UPDATE每个更新表(MyISAM)中的1行的语句.
如果一行未在其中一个脚本中存在2天,则必须将其删除.该表有一个时间戳列.但是,当UPDATE语句没有更改任何列时,时间戳不会更新,我无法告诉该行是否在导入文件中.有没有办法强制这个时间戳更新,即使没有数据更改?
编辑: 进一步澄清.
importfile是gzip压缩文件,包含大约450.000行,每行是1 UPDATE语句.
这是处理导入文件的PHP函数:
private function ImportFile($filename) {
$importfile = gzopen($filename, "r");
if (!$importfile) {
throw new Exception("Could not open Gzip file " . $filename);
}
while (!gzeof($importfile)) {
$line = gzgets($importfile, 4096);
if (!$line) {
throw new Exception("Error reading line number $line Gzip file $filename");
}
if (strlen(trim($line)) > 0) {
$this->DB->Query($line);
}
}
gzclose($importfile);
}
Run Code Online (Sandbox Code Playgroud) 我正在使用辉煌的BlockUI,并使用默认设置
$(document).ajaxStart($.blockUI).ajaxStop($.unblockUI);
Run Code Online (Sandbox Code Playgroud)
这很棒 - 除非我在页面上添加自动完成元素,然后一旦用户开始输入就会启动blockUI.而不是显式设置ajax调用什么来启动块UI可以有人想到一种方法来禁用某些ajax函数的blockUI?
我在WebService中面临一个问题,详细说明:
Caused by: org.apache.cxf.interceptor.Fault: Could not send Message.
at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:64)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:220)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:276)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:222)
at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:171)
... 26 more
Caused by: java.net.SocketTimeoutException: Read timed out
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:129)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
at java.io.BufferedInputStream.read1(BufferedInputStream.java:258)
at java.io.BufferedInputStream.read(BufferedInputStream.java:317)
at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:687)
at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:632)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1000)
at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:373)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1900)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1828)
at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:590)
at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
... 31 more
Run Code Online (Sandbox Code Playgroud)
当我尝试向目标服务发送请求时,需要30-60秒,并且抛出上述异常.我正在使用Tomcat 5,我想问有没有办法增加超时值?我想要访问的WSDL和WebService也在运行和可用.
我非常感谢任何帮助,
亲切的问候,P.
我正在使用一个使用hibernate的spring项目,并期望使用ehcache实现二级缓存.我看到了很多方法:
spring-modules-cache它引入了@Cacheable注释
ehcache-spring-annotations一个旨在成为其继承者的工具集spring-modules-cache.
Hibernate cache很好地集成到hibernate本身,以使用例如@Cache注释执行缓存.
Programmatic cache使用代理.基于注释的配置很快变得有限或复杂(例如,几个级别的注释嵌套)
我个人认为spring-modules-cache不够彻底,因此我可能更愿意考虑更积极的发展ehcache-spring-annotations.Hibernate cache虽然似乎是最完整的实现(例如,读取和写入缓存等).
什么会激发使用哪个工具集?请分享您的缓存体验......
我正在以静态上下文的方式寻找JAVA中当前类的"自我"引用,就像在PHP Scope Resolution Operator中一样?
解决方案:超出范围?请注意,这与静态定义相比真的很慢(乘以300):
static Logger LOG = LoggerFactory.getLogger(new RuntimeException().getStackTrace()[0].getClassName());
Run Code Online (Sandbox Code Playgroud)
老式的方式是:
static Logger LOG = LoggerFactory.getLogger(<Classname>.class.getName());
Run Code Online (Sandbox Code Playgroud)
还有其他选择吗?我正在寻找一种将记录器定义放在抽象类中的方法.记录器应该确定它自己调用的类.
有没有一种使用OpenGL命令对函数或类进行单元测试的好方法?
对于c ++,我知道我可以使该类成为模板并传递一个直接执行opengl调用的类:
namespace myNamespace
{
struct RealOpenglCall
{
static inline void glVertex2fv( const GLfloat * v)
{ ::glVertex2fv( v ); }
};
template< typename T >
class SomeRendering
{
public:
SomeRendering() : v()
{
// set v
}
void Draw()
{
T::glVertex2fv(v);
}
GLfloat v[4];
};
}
Run Code Online (Sandbox Code Playgroud)
在C和c ++中,我可以将函数指针传递给调用opengl函数的函数(然后进行单元测试,将指针传递给mock函数).
我也可以链接不同的库(而不是opengl),但这听起来像是一个很大的复杂功能.
那么,什么是单元测试代码调用opengl函数的其他技术呢?
我真的很难在xcode 4中使用它.
我有一个项目,我将在许多应用程序(网络)中重用,所以我创建一个工作区并添加我的两个项目.到目前为止一直很好....这是它失败的地方..
#import "JSONRequest.h"
Run Code Online (Sandbox Code Playgroud)
没有明显的理由.它会自动完成头文件的文件名.我认为这与"方案"(xcode 4中的新功能)有关,所以我试图在构建阶段添加我的网络目标.改变它们的顺序...在管理方案下设置"共享"..我已经尝试了很多不同的设置组合而没有任何成功..而错误信息是获取的是:
JSONRequest.h: No such file or directory
Run Code Online (Sandbox Code Playgroud)
如果您有线索,请告诉我.
我的问题是,为什么人们在使用C++时仍然使用C?我研究过C,因为它被认为是程序员交流的语言,建议任何程序员知道.然后我转到C++,我现在想,为什么人们仍然在C中使用和编程?据我所知,C++更强大(在其中有OOP方面),它和C一样快,整体似乎更好.我见过人们不喜欢C++,因为编写代码太难了.