无法在Azure Web Apps上运行Solr

时间:2016-11-24 21:19:15

标签: java azure solr azure-web-sites

我无法在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>

1 个答案:

答案 0 :(得分:1)

仍然不确定为什么solr.cmd在azure网站中失败的根本原因,但应用https://github.com/apache/lucene-solr/pull/113解决了问题,因为它删除了导致solr.cmd失败的代码启动