Aspose.Cells.GridWeb IIS部署後,無法使用問題

private void LoadData()
{
var apiUri = AppSettingsFactory.Get(“APIURL”);
var url = apiUri + “XReport_ReportFile(GenRpt_Key=” + _testGenRpt_Key.ToString() + “, FileType=‘ORIG’)”;
var response = HttpClientHelper.Get(url);

        if (response.StatusCode.ToString() == "OK")
        {
            var dataResponse = response.Content.ReadAsStringAsync().Result;
            var data = JsonConvert.DeserializeObject<DownloadFileInfoDTO>(dataResponse);
            hidFileName.Value = data.Result.FileInfo.FileName;
            var fileByteArray = Convert.FromBase64String(data.Result.FileInfo.FileContent);
            using (var ms = new MemoryStream(fileByteArray))
            {
                GridWeb1.ImportExcelFile(ms);
            }
        }
    }

以上是我在local test gridweb import data的sample,在本機的vs偵錯狀態,是可以載入資料,但我將它部署到iis後,要載入資料的時候,卻出現405的error,請問有大大遇過這樣的狀況嗎?

@Morris705
http 405错误 method not allowed
尚未達到應用層范畴,應該和服務器的配寘有關,請檢查相關的路由配寘,
解决思路,抛去業務層邏輯,進行最簡單的post method測試或者可以抓包檢測,

拿掉GridWeb ImportExcelFile後,是可以正常postback到後端
web.config中,有設定
add name=“ExtensionlessUrlHandler-Integrated-4.0” path="*." verb=“OPTIONS, TRACE, GET, HEAD, POST” type=“System.Web.Handlers.TransferRequestHandler” resourceType=“Unspecified” requireAccess=“Script” preCondition=“integratedMode,runtimeVersionv4.0”

不知是不是aspose.cells.gridweb中,有用到裡面沒設定到的http method

@Morris705
請打開瀏覽器的調試介面檢查看下network介面,看下哪個網絡請求訪問出現的問題
這個是我們這邊正常訪問的截圖

QQ截图20230510105617.png (64.1 KB)
另外,如果是基于json的数据的操作,可以尝试使用我们的GridJs产品

2023-05-10_10h58_44.png (24.9 KB)

我在編輯gridweb中的資料時,它就會出現這個訊息

@Morris705
這個截圖顯示的問題應該是沒有找到臨時目錄,因為在編輯的時候會需要保存暫存檔案
請檢查web.config裡面有沒有配寘aspose.cells.gridweb.session_ store_ path?
另外能提供可以複現問題的web工程麼

但我在自己的電腦上,用vs+iis express,它是可以使用的,部署到vm server中的iis裡,才會出現上圖的那個問題

2023-05-10_12h04_03.png (20.2 KB)
2023-05-10_12h04_46.jpg (141.0 KB)

我的web.config設定,及web folder中的樣子

@peter.zhou

2023-05-10_13h36_29.png (54.9 KB)

我看web資料夾中,這個目錄下,是有產生暫存檔案的,但看起來gridweb似乎沒辦法存取它

是不是没有相关的写权限啊?这个目录下生成的文件正常吗,打包成zip传上来我们看看

tmpstorecache.zip (550 Bytes)

但有生成檔案了,應該是有寫入的權限吧?
只是生成的檔案,都是0kb,資料寫不進去的樣子

那就是没有写的权限的问题,你写一个测试的页面,在页面里尝试往这个目录写文件看看行不行。

2023-05-10_17h00_29.png (132.4 KB)

我將這個目錄的權限先開到everyone的full control,它還是會出現這個error

那現在已經定位問題了,就是因為這個寫入許可權的問題。 這個和應用本身沒有關係了,你配寘成其他目錄試試,你再研究一下吧

但我權限開給了everyone full control,它還是會有這個error欸…這樣合理嗎 @.@?

2023-05-10_17h32_47.png (104.2 KB)

我把session_store_path指到了我存放log的目錄下,它一樣是只寫入了一個0kb的檔案,然後alert那個錯誤,但這個目錄下的log,都是我的站台寫入的trace log,是可以正常寫入的

在你的web project里面新建一个 testwrite.aspx
里面的内容就是测试往这个目录写入文件,例如

string filestorepath=System.Configuration.ConfigurationManager.AppSettings[“aspose.cells.gridweb.session_store_path”];
string path= filestorepath + Path.DirectorySeparatorChar + “test.txt”;

using (FileStream stream = new FileStream(path, FileMode.OpenOrCreate))
{
byte[] s = System.Text.Encoding.UTF8.GetBytes(“cesi文本内容2”);
stream.Write(s, 0, s.Length);
stream.Flush();
}
然后你打开这个page看下能不能成功

2023-05-10_18h34_22.png (65.1 KB)

是有寫入測試file的

@Morris705
那看来是其他环节出了问题,等我们专门出一个带日志跟踪的版本给你进一步调查。

@Morris705
请使用这个版本的dll,会在服务器根目录创建log目录,并记录exception,请试下,并将日志文件发上来以供进一步分析
Aspose.Cells.GridWeb.23.5.withlog.zip (6.5 MB)