簡體   English   中英

Perforce API (P4API.NET): P4Exception: Too many trys to get lock p4tickets.txt.lck

[英]Perforce API (P4API.NET): P4Exception: Too many trys to get lock p4tickets.txt.lck

我編寫了一個 .NET Web 應用程序來建立 Perforce 連接,但一直收到以下錯誤消息。 僅當我發布到服務器時才會出現此問題。 當我在本地機器上運行這個應用程序時,它運行得很好,但在服務器中,當我嘗試登錄時,它看起來一直失敗。

[P4Exception:致命的客戶端錯誤; 斷開連接! 'client-SetPassword' 操作失敗。 太多嘗試鎖定 C:\\WINDOWS\\system32\\config\\systemprofile\\p4tickets.txt.lck。 ]

Perforce.P4.P4Exception.Throw(String cmd, String[] args, P4ClientErrorList errors, P4ClientInfoMessageList details) in c:\\tmp\\104564385\\P4.NET\\r19.2\\p4api.net\\p4api.net\\P4Exception.cs: 393
Perforce.P4.P4Server.RunCommand(String cmd, UInt32 cmdId, Boolean tagged, String[] args, Int32 argc) in c:\\tmp\\104564385\\P4.NET\\r19.2\\p4api.net\\p4api.net\\P4Server .cs:1106
Perforce.P4.P4Command.RunInt(StringList flags) in c:\\tmp\\104564385\\P4.NET\\r19.2\\p4api.net\\p4api.net\\P4Command.cs:503
Perforce.P4.P4CommandResult..ctor(P4Command cmd, StringList flags) in c:\\tmp\\104564385\\P4.NET\\r19.2\\p4api.net\\p4api.net\\P4CommandResult.cs:142 Perforce.P4.P4Command。在 c:\\tmp\\104564385\\P4.NET\\r19.2\\p4api.net\\p4api.net\\P4Command.cs:373 中運行(StringList 標志)
Perforce.P4.Connection.Login(String password, Boolean allHostTicket) in c:\\tmp\\104564385\\P4.NET\\r19.2\\p4api.net\\p4api.net\\Connection.cs:1071

這是我連接/登錄的部分代碼

    private void Connect(Connection con)
    {
        con.UserName = username;
        if (con.Client == null)
        {
            con.Client = new Client();
            con.Client.Name = "";
        }
        con.Connect(null);
        con.Login(password);
    }

我也一直在嘗試使用 P4.Option 並將密碼存儲在此處並將其作為參數傳遞給 con.Connect() 而不是使用 con.Login() 但它有同樣的問題(僅當我發布到服務器時.)

有人可以幫忙解決這個問題嗎?

這看起來像是服務器文件系統上的權限問題。 默認情況下,登錄票進入%USERPROFILE%/p4tickets 您的應用程序以System用戶身份運行,該用戶沒有普通的Users目錄,因此它嘗試將其票證寫入系統文件夾(應用程序實際上可能沒有寫入權限)。

通常我會通過使用p4 login -p來解決這個問題,以避免在實際文件系統上需要票證文件。 另一個潛在的解決方法是將票證文件位置顯式設置為您確定可寫的路徑。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM