我无法在Azure网站上运行solr(6.3.0)。具体来说,在执行以下操作时似乎无法检测到java版本
"D:\Program Files\Java\zulu8.17.0.3-jdk8.0.102-win_x64\bin\java" -version 2>&1 | findstr /i "version" 1>javavers
type javavers
set /p JAVAVEROUT=<javavers
@REM app_data\bin\solr.cmd start -f -V -p %HTTP_PLATFORM_PORT% -Djava.net.preferIPv4Stack=true
从kudu控制台运行时,此代码运行时没有错误,JAVAVEROUT
按预期设置。但是,当通过http平台处理程序运行时,它在最后一行失败,如下所示
D:\home\site\wwwroot>"D:\Program Files\Java\zulu8.17.0.3-jdk8.0.102-win_x64\bin\java" -version 2>&1 | findstr /i "version" 1>javavers
D:\home\site\wwwroot>type javavers
openjdk version "1.8.0_102"
D:\home\site\wwwroot>set /p JAVAVEROUT= 0<javavers
The handle could not be opened
during redirection of handle 0.
为什么在平台处理程序中失败的任何想法,但通过kudu控制台工作?
供参考,以下是我正在使用的web.config。 (Start.cmd是本文开头的批处理脚本。)
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<handlers>
<clear />
<add name="httppPlatformHandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified" />
</handlers>
<httpPlatform processPath="d:\home\site\wwwroot\start.cmd"
startupTimeLimit="1"
stdoutLogEnabled="true"
stdoutLogFile="d:\home\LogFiles\httpPlatformStdout.log"
/>
</system.webServer>
</configuration>
答案 0 :(得分:1)
仍然不确定为什么solr.cmd
在azure网站中失败的根本原因,但应用https://github.com/apache/lucene-solr/pull/113解决了问题,因为它删除了导致solr.cmd
失败的代码启动